΢»úÔ­Àí¼°Ó¦Ó㨳¼̺졢Ð쳿£©¿ÎºóϰÌâ´ð°¸ ÏÂÔØ±¾ÎÄ

ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/5/15 2:10:45ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£

΢»úÔ­Àí¼°Ó¦Ó㨳¼̺졢Ð쳿£©¿ÎºóϰÌâ´ð°¸

mov dl,0ah mov ah,02h int 21h mov dl,0dh int 21h

lea dx,message3 mov ah,09h int 21h pop ax

cmp al,'z' ;±È½Ï£¬ÅжÏÊÇ·ñСд×Öĸ ja error1 cmp al,'a'

jb error1 ;´óд×Öď֨ÐÂÊäÈë sub al,20H ;¼õ

20Hת»»Îª´óд×Öĸ mov dl,al mov ah,02h int 21h

mov ax,4c00h int 21h code ends end start

4£®15 ¼üÅÌÊäÈëÊ®¸öѧÉúµÄ³É¼¨£¬ÊÔ±àÖÆÒ»¸ö³ÌÐòͳ¼Æ 69~69·Ö£¬ 70~79·Ö£¬ 80~89·Ö£¬ 90~99·Ö¼°

100·ÖµÄÈËÊý£¬·Ö±ð´æ·Åµ½ S6£¬S7£¬S8£¬S9¼° S10µ¥ÔªÖС£ ½â´ð³ÌÐòΪ£º

DATA SEGMENT BUF DB 10 DUP(?) S6 DB ? S7 DB ? S8 DB ?

S9 DB ? S10 DB ? DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV SI,OFFSET S6 XOR AL,AL

MOV CX,0504H CONT: MOV [SI],AL INC SI

LOOP CONT MOV CX,10

MOV SI,OFFSET BUF CONT1: MOV AH,1 INT 21H SHL AL,CL MOV BL,AL MOV AH,1 INT 21H SUB AL,30H OR AL,BL MOV [SI],AL CMP AL,70H JAE NEXT1

INC BYTE PTR S6 14

΢»úÔ­Àí¼°Ó¦Ó㨳¼̺졢Ð쳿£©¿ÎºóϰÌâ´ð°¸

NEXT1: CMP AL,80H JAE NEXT2

INC BYTE PTR S7 NEXT2: CMP AL,90H JAE NEXT3

INC BYTE PTR S8 NEXT3: CMP AL,99H JA NEXT4

INC BYTE PTR S9 JMP NEXT5

NEXT4: INC BYTE PTR S10 NEXT5: INC SI LOOP CONT1 MOV AH,4CH INT 21H CODE ENDS END START

4.17 ÔÚÓÐÐò±í¡°11,22,33,44,55,66,77,88,99,00¡±ÖвéÕÒ 44¡£ÈôÕÒµ½Öà findΪÆäÔÚ±íÖÐ µÄλÖã»Î´ÕÒµ½£¬findÖÃ0¡£

4.18 ·Ö±ðʵÏÖÂú×ãÏÂÃæÒªÇóµÄºê¶¨Ò壺

£¨1£©¿É¶ÔÈÎÒ»¼Ä´æÆ÷ʵÏÖÈÎÒâ´ÎÊýµÄ×óÒÆ²Ù×÷¡£ £¨2£©ÈÎÒâÁ½¸öµ¥ÔªÖеÄÊý¾ÝÏà¼Ó´æÈëµÚÈý¸öµ¥ÔªÖС£ £¨3£©½«ÈÎÒâÒ»¸ö8λ¼Ä´æÆ÷ÖеÄѹËõBCDÂëתΪÁ½¸öASCI IIÂ룬²¢ÔÚÆÁÄ»ÉÏÏÔʾ¡£

£¨2£©ºê¶¨ÒåµÄ´úÂë¶ÎÈçÏ£º ADDM MACRO M1£¬M2£¬M3 MOV AX£¬[M1] ADD AX£¬[M2] MOV [M3]£¬AX ENDM 15

΢»úÔ­Àí¼°Ó¦Ó㨳¼̺졢Ð쳿£©¿ÎºóϰÌâ´ð°¸

µÚÎåÕÂ

8086ϵͳʱÐòºÍ΢»ú×ÜÏßϰÌâ´ð°¸£¨²¿·Ö£©

5.1 ʲôÊÇʱÖÓÖÜÆÚ¡¢×ÜÏßÖÜÆÚ¡¢Ö¸ÁîÖÜÆÚ£¿

´ð£º8086CPUÖ´ÐÐÒ»ÌõÖ¸ÁîÊÇÓÉȡָÁî¡¢ÒëÂëºÍÖ´ÐеȲÙ×÷×é³ÉµÄ£¬ÎªÁËʹ 8086CPU

µÄ¸÷ÖÖ²Ù×÷Эµ÷ͬ²½½øÐУ¬8086CPU±ØÐëÔÚʱÖÓÐźŠCLK ¿ØÖÆÏ¹¤×÷£¬Ê±ÖÓÐźÅÊÇÒ»¸ö

ÖÜÆÚÐÔµÄÂö³åÐźţ¬Ò»¸öʱÖÓÂö³åµÄʱ¼ä³¤¶È³ÆÎªÒ»¸öʱÖÓÖÜÆÚ (Clock Cycle)£¬ÊÇʱÖÓÆµÂÊ

£¨Ö÷Ƶ£©µÄµ¹Êý£¬Ê±ÖÓÖÜÆÚÊǼÆËã»úϵͳÖеÄʱ¼ä»ù×¼¡£

8086CPUҪͨ¹ý×ÜÏß²ÅÄÜÓëÍⲿ½»»»ÐÅÏ¢£¬ CPUͨ¹ý×ÜÏß½Ó¿Úµ¥ÔªÓëÍⲿ½»»»Ò»´ÎÐÅ

Ï¢£¬³ÆÎªÒ»´Î×ÜÏß²Ù×÷£¬ËùºÄÓõÄʱ¼ä³ÆÎªÒ»¸ö×ÜÏßÖÜÆÚ (Bus Cycle)£¬Ò²³Æ»úÆ÷ÖÜÆÚ£¨Machine Cycle£©¡£Ò»¸ö×ÜÏßÖÜÆÚÓÉÈô¸É¸öʱÖÓÖÜÆÚ×é³É£¬×ÜÏß²Ù×÷µÄÀàÐͲ»Í¬£¬×ÜÏßÖÜÆÚÒ²²»Í¬¡£Ò» ¸ö×ÜÏßÖÜÆÚÄÚÍê³ÉµÄÊý¾Ý´«Ê䣬һ°ãÓд«Ë͵ØÖ·ºÍ´«ËÍÊý¾ÝÁ½¸ö¹ý³Ì¡£

8086CPUÖ´ÐÐÒ»ÌõÖ¸ÁîËùÐèÒªµÄʱ¼ä³ÆÎªÖ¸ÁîÖÜÆÚ£¨ Instruction Cycle£©£¬Ò»¸öÖ¸ÁîÖÜÆÚ ÓÉÈô¸É¸ö×ÜÏßÖÜÆÚ×é³É£¬

5.2 8086΢´¦ÀíÆ÷¸÷¸ö T״̬µÄÖ÷Òª¹¦ÄÜ¡£ ´ð£º(1)ÔÚ

T1״̬£¬CPUÍù¶à·¸´ÓÃ×ÜÏßÉÏ·¢³öµØÖ·ÐÅÏ¢£¬ÒÔÖ¸³öҪѰַµÄ´æ´¢µ¥Ôª»ò ÍâÉè¶Ë¿ÚµÄµØÖ·¡£

(2)ÔÚ

T2״̬£¬CPU´Ó×ÜÏßÉϳ·ÏûµØÖ·£¬¶øÊ¹×ÜÏßµÄµÍ 16λ¸¡¿Õ£¬Öóɸß×è״̬£¬Îª ´«ÊäÊý¾Ý×÷×¼±¸¡£×ÜÏßµÄ×î¸ß 4루

A19¡«£Á16£©ÓÃÀ´Êä³ö±¾×ÜÏßÖÜÆÚ״̬ÐÅÏ¢¡£ÔÚÕâЩ״

̬ÐÅÏ¢ÓÃÀ´±íʾÖжÏÔÊÐí״̬£¬µ±Ç°ÕýÔÚʹÓõĶμĴæÆ÷ÃûµÈ¡£ (3)ÔÚ

T3״̬£¬¶à·×ÜÏߵĸß

4λ¼ÌÐøÌṩ״̬ÐÅÏ¢£¬¶ø¶à·×ÜÏßµÄµÍ 16루 8088Ôò ΪµÍ

8룩ÉϳöÏÖÓÉ

CPUд³öµÄÊý¾Ý»òÕß

CPU´Ó´æ´¢Æ÷»ò¶Ë¿Ú¶ÁÈëµÄÊý¾Ý¡£

(4)ÔÚÓÐЩÇé¿öÏ£¬ÍâÉè»ò´æ´¢Æ÷ËٶȽÏÂý£¬²»Äܼ°Ê±µØÅäºÏ CPU´«ËÍÊý¾Ý¡£Õâʱ£¬Íâ Éè»ò´æ´¢Æ÷»áͨ¹ý ¡°READY¡±ÐźÅÏßÔÚ T3״̬Æô¶¯Ö®Ç°Ïò

CPU·¢Ò»¸ö¡°Êý¾Ýδ׼±¸ºÃ ¡±Ðźţ¬ ÓÚÊÇ CPU»áÔÚ T3Ö®ºó²åÈë

1¸ö»ò¶à¸ö¸½¼ÓµÄʱÖÓÖÜÆÚ Tw¡£TwÒ²½ÐµÈ´ý״̬£¬ÔÚ Tw״̬£¬

×ÜÏßÉϵÄÐÅÏ¢Çé¿öºÍ

T3״̬µÄÐÅÏ¢Çé¿öÒ»Ñù¡£µ±Ö¸¶¨µÄ´æ´¢Æ÷»òÍâÉèÍê³ÉÊý¾Ý´«ËÍʱ£¬±ã ÔÚ¡°READY¡±ÏßÉÏ·¢³ö

¡°×¼±¸ºÃ¡±Ðźţ¬CPU½ÓÊÕµ½ÕâÒ»Ðźź󣬻á×Ô¶¯ÍÑÀë Tw״̬¶ø½øÈë T4״̬¡£ (5)ÔÚ

T4״̬£¬×ÜÏßÖÜÆÚ½áÊø¡£ 5.3 8086ºÍ

8088ÓкÎÇø±ð£¿ ´ð£ºÕâÁ½ÖÖ

CPUµÄÖ÷񻂿±ðÈçÏ£º ¢ÅÍⲿÊý¾Ý×ÜÏßλÊý£º

8086 CPUµÄÍⲿÊý¾Ý×ÜÏßÓÐ

16룬ÔÚÒ»¸ö×ÜÏßÖÜÆÚÄÚ¿ÉÊäÈë /

Êä³öÒ»¸ö×Ö£¨ 16λÊý¾Ý£©£¬Ê¹ÏµÍ³´¦ÀíÊý¾ÝºÍ¶ÔÖжÏÏìÓ¦µÄËٶȵÃÒԼӿ죻¶ø 8088 CPUµÄ

ÍⲿÊý¾Ý×ÜÏßΪ

8룬ÔÚÒ»¸ö×ÜÏßÖÜÆÚÄÚÖ»ÄÜÊäÈë