΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸ ¡¤13¡¤
5. »³öÏÂÃæÊý¾Ý¶Î»ã±àºóµÄÄÚ´æÍ¼£¬²¢±ê³ö±äÁ¿µÄλÖᣠDATA SEGMENT
AA EQU 78H
AA0 DB 09H,-2,45H,2 DUP£¨01H, £¿£©,¡¯AB¡¯ AA1 DW -2,34H+AA
AA2 DD 12H £»Ë«×ÖÀàÐÍ
DATA ENDS
½â£ºÈçͼËùʾ¡£
6. Éè³ÌÐòÖеÄÊý¾Ý¶¨ÒåÈçÏ£º
NAME DB 30 DUP£¨?£© LIST DB 1£¬8£¬3£¬2 ADDR DW 30 DUP£¨?£© £¨1£© È¡NAMEµÄÆ«ÒÆµØÖ··ÅÈëSI £¨2£© È¡LISTµÄǰÁ½¸ö×Ö½Ú´æÈëAX £¨3£© È¡LISTʵ¼Ê³¤¶È
½â£º£¨1£©È¡NAMEµÄÆ«ÒÆµØÖ··ÅÈëSI
MOV SI,OFFSET NAME
£¨2£©È¡LISTµÄǰÁ½¸ö×Ö½Ú´æÈëAX
MOV AX,WORD PTR [LIST]
£¨3£©È¡LISTʵ¼Ê³¤¶È
MOV AX,SIZE LIST £»P85
AA009HFEH45H01H?H01H?41H42HAA1FEHFFHACH00HAA012H00H00H00H7. ÒÀ¾ÝÏÂÁÐָʾÐÔÓï¾ä£¬Çó±í´ïʽµÄÖµ¡£
SHOW0 EQU 200 SHOW1 EQU 15 SHOW2 EQU 2 ¢Å SHOW0X100+55 ¢Æ SHOW0 AND SHOW1-15 ¢Ç (SHOW0/SHOW2) MOD SHOW1 ¢È SHOW1 OR SHOW0 ½â£º£¨1£© SHOW0 X 100+55=200X100+55
¢Æ SHOW0 AND SHOW1-15=C8H AND 0FH - 0FH = 0£»¼õ·¨µÄÓÅÏȼ¶¹ýÓÚAND ¢Ç £¨SHOW0/SHOW2£©MOD SHOW1=100 MOD 15=10 ¢È SHOW1 OR SHOW0=0FH OR C8H=CF
8. ±àд³ÌÐò£¬Í³¼Æ¼Ä´æÆ÷BXÖжþ½øÖÆÎ»¡°1¡±µÄ¸öÊý£¬½á¹û´æÔÚALÖС£
DATA SEGMENT
NUM DW £¿ DATA ENDS
CODE SEGMENT ASSUME CS£ºCODE£¬DS£ºDATA START£º MOV AX£¬DATA
MOV DS£¬AX MOV AL£¬0
¡¤14¡¤ ΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸
MOV BX£¬NUM ;°ÑÊýX´«Ë͸øBX MOV CX£¬16
NEXT£º SHL AX£¬1
JNC NEXT1 INC AL
NEXT1£º LOOP NEXT
MOV AH£¬4CH
INT 21H
CODE ENDS
END START
9. ijÊý¾Ý¿é´æ·ÅÔÚBUFFER¿ªÊ¼µÄ100¸ö×Ö½Úµ¥ÔªÖУ¬ÊÔ±àд³ÌÐòͳ¼ÆÊý¾Ý¿éÖÐÕý
Êý£¨²»°üÀ¨0£©µÄ¸öÊý£¬²¢½«Í³¼ÆµÄ½á¹û´æ·Åµ½NUMBERµ¥ÔªÖС£ ½âDATA SEGMENT
BUFFER DB 100(?) NUMBER DB 0
DATA ENDS
CODE SEGMENT ASSUME CS£ºCODE£¬DS£ºDATA START£º MOV AX,DATA
MOV DS,AX XOR DX, DX
MOV CX,100 MOV SI,OFFSET BUFFER NEXT£º MOV AL,[SI] INC SI TEST AL,80H ;ÊÇÕýÊýÂ𣿠JNZ GOON ;·ñ£¬×ªÒƵ½GOON CMP AL,0 JZ GOON
INC DX
GOON: LOOP NEXT MOV NUMBER,DX
MOV AH£¬4CH INT 21H
CODE ENDS
END START
10. ÔĶÁÏÂÃæ³ÌÐò¶Î£¬Ö¸³öËüµÄ¹¦ÄÜ¡£ DATA SEGMENT
ASCII DB 30H, 31H, 32H, 33H ,34H ,35H, 36H, 37H, 38H, 39H HEX DB 04H DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA
΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸ ¡¤15¡¤
MOV DS, AX
MOV BX,OFFSET ASCII MOV AL,HEX AND AL,0FH MOV AL,[BX+AL] MOV DL,AL MOV AH,2 INT 21H
MOV AH,4CH INT 21H
CODE ENDS END START
½â£ºÕâʱһ¸ö²é±í³ÌÐò£¬²é±íÈ¡³öHEXµÄASCII¡£²¢ÔÚÆÁÄ»ÉÏÏÔʾASCIIÂë
11. ijÊý¾ÝÇøÖÐÓÐ100¸öСд×Öĸ£¬±à³Ì°ÑËüÃÇת»»³É´óд×Öĸ£¬²¢ÔÚÆÁÄ»ÉÏÏÔʾ¡£
½â£ºDATA SEGMENT
BUFFER DB 100(?)
DATA ENDS
CODE SEGMENT ASSUME CS£ºCODE£¬DS£ºDATA START£º MOV AX,DATA
MOV DS,AX
MOV CX,100 MOV SI,OFFSET BUFFER NEXT£º MOV AL,[SI] INC SI CMP AL,61H ;ÊÇСд×ÖĸÂð? JB GOON ;·ñ£¬×ªÒƵ½GOON£¨Ð¡ÓÚÔò×ªÒÆ£© SUB AL,20H MOV DL,AL MOV AH,2 INT 21H GOON: LOOP NEXT MOV AH£¬4CH
INT 21H
CODE ENDS END START
12. ×Ó³ÌÐòµÄ²ÎÊý´«µÝÓÐÄÄЩ·½·¨£¿ ½â£º
Ö÷³ÌÐòÔÚµ÷ÓÃ×Ó³ÌÐòʱ£¬ÒªÎª×Ó³ÌÐòÔ¤ÖÃÊý¾Ý£¬ÔÚ×Ó³ÌÐò·µ»ØÊ±¸ø³öÊý¾Ý´¦ÀíµÄ½á¹û£¬Õâ³ÆÎªÊý¾Ý´«ËÍ»ò±äÁ¿´«ËÍ¡£·½·¨Ö÷ÒªÓÐÒÔϼ¸ÖÖ£º
¢Ù ¼Ä´æÆ÷´«ËÍ¡£
¡¤16¡¤ ΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸
¢Ú µØÖ·±í´«ËÍ£¬ÐèÒª´«Ë͵IJÎÊý½Ï¶àʱ¿ÉÒÔÀûÓô洢µ¥Ôª´«ËÍ¡£ÔÚµ÷ÓÃ×Ó³ÌÐòǰ£¬°ÑËùÓвÎÊýÒÀ´ÎËÍÈëµØÖ·±í£¬È»ºó½«µØÖ·±íµÄÊ×µØÖ·×÷Ϊ×Ó³ÌÐòÈë¿Ú²ÎÊý´«µÝ¸ø×Ó³ÌÐò¡£
¢Û ¶ÑÕ»´«ËÍ£¬ÕâÖÖ·½Ê½ÒªÉóÉ÷×¢Òâ¶ÑÕ»µÄ±ä»¯Çé¿ö¡£
13. ¹ý³Ì¶¨ÒåµÄÒ»°ã¸ñʽÊÇʲô£¿×Ó³ÌÐò¿ªÊ¼´¦ÎªÊ²Ã´³£ÓÃPUSHÖ¸Á·µ»ØÇ°ÓÃ
POPÖ¸Á ½â£º¸ñʽ¼ûP90£¬
Èç¹ûÒ»¸ö×Ó³ÌÐò±»¶à´Îµ÷Ó㬱£»¤Óë»Ö¸´£¨Ö÷³ÌÐò£©ÏÖ³¡¾Í·Ç³£ÖØÒª¡£Ö÷³ÌÐòÿ´Îµ÷ÓÃ×Ó³ÌÐòʱ£¬Ö÷³ÌÐòµÄÏÖ³¡²»»áÏàͬ£¬±£»¤Óë»Ö¸´ÏÖ³¡µÄ¹¤×÷¾ÍÖ»ÄÜÔÚ×Ó³ÌÐòÖнøÐС£ÔÔòÉÏ£¬ÔÚ×Ó³ÌÐòÖУ¬Ê×ÏȰÑ×Ó³ÌÐòÖÐÒªÓõ½µÄ¼Ä´æÆ÷¡¢´æ´¢µ¥Ôª¡¢×´Ì¬±êÖ¾µÈѹÈë¶ÑÕ»»ò´æÈëÌØ¶¨¿Õ¼äÖУ¬È»ºó×Ó³ÌÐò²Å¿ÉÒÔʹÓÃËüÃÇ£¬Ê¹ÓÃÍêºóÔÙ½«ËüÃǵ¯³ö¶ÑÕ»»ò´ÓÌØ¶¨¿Õ¼äÖÐÈ¡³ö£¬»Ö¸´ËüÃÇÔÀ´µÄÖµ£¬¼´»Ö¸´Ö÷³ÌÐòÏÖ³¡¡£±£»¤ºÍ»Ö¸´ÏÖ³¡³£Ê¹ÓÃPUSHºÍPOPÖ¸Áî¡£
14. ÔĶÁÏÂÃæ³ÌÐò¶Î£¬Ö¸³öËüµÄ¹¦ÄÜ¡£
DATA SEGMENT
STRING DB ¡®Exxperience¡¡¯ LENG DW 100 KEY DB ¡®x¡¯ DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA MAIN PROC FAR
START£ºMOV AX, DATA MOV DS, AX MOV ES, AX
LEA BX, STRING £»×Ö·û´®µØÖ·->BX
LEA CX, LENG £»×Ö·û´®³¤->CX
PUSH BX
PUSH CX
DI- MOV AL, KEY
DI+ CALL DELCHAR
SI+ MOV AH, 4CH
SP->BP BP- INT21H
MAIN ENDP BP+ IP- DELCHAR PROC IP+ PUSH BP [BP+4]->SI CL MOV BP, SP CH PUSH SI [BP+6]->DI BL PUSH DI BH CLD MOV SI, [BP+4] MOV CX, [SI] MOV DI, [BP+6] REPNE SCASB