ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 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룬ÔÚÒ»¸ö×ÜÏßÖÜÆÚÄÚÖ»ÄÜÊäÈë