¢Ù ¼Ä´æÆ÷´«ËÍ¡£ ¢Ú µØÖ·±í´«ËÍ£¬ÐèÒª´«Ë͵IJÎÊý½Ï¶àʱ¿ÉÒÔÀûÓô洢µ¥Ôª´«ËÍ¡£ÔÚµ÷ÓÃ×Ó³ÌÐòÇ°£¬°ÑËùÓвÎÊýÒÀ´ÎËÍÈëµØÖ·±í£¬È»ºó½«µØÖ·±íµÄÊ×µØÖ·×÷Ϊ×Ó³ÌÐòÈë¿Ú²ÎÊý´«µÝ¸ø×Ó³ÌÐò¡£
¢Û ¶ÑÕ»´«ËÍ£¬ÕâÖÖ·½Ê½ÒªÉóÉ÷×¢Òâ¶ÑÕ»µÄ±ä»¯Çé¿ö¡£
13. ¹ý³Ì¶¨ÒåµÄÒ»°ã¸ñʽÊÇʲô£¿×Ó³ÌÐò¿ªÊ¼´¦ÎªÊ²Ã´³£ÓÃPUSHÖ¸Á·µ»ØÇ°
ÓÃPOPÖ¸Á
½â£º¹ý³Ì¶¨ÒåµÄÒ»°ã¸ñʽÇë²ÎÕÕ¡¶Î¢»úÔÀíÓë½Ó¿Ú¼¼Êõ¡·ÖеĵÚ100Ò³µÄ¡°4.4.5¹ý³ÌÉè¼Æ¡±Ò»½Ú¡£
Èç¹ûÒ»¸ö×Ó³ÌÐò±»¶à´Îµ÷Ó㬱£»¤Óë»Ö¸´£¨Ö÷³ÌÐò£©ÏÖ³¡¾Í·Ç³£ÖØÒª¡£Ö÷³ÌÐòÿ´Îµ÷ÓÃ×Ó³ÌÐòʱ£¬Ö÷³ÌÐòµÄÏÖ³¡²»»áÏàͬ£¬±£»¤Óë»Ö¸´ÏÖ³¡µÄ¹¤×÷¾ÍÖ»ÄÜÔÚ×Ó³ÌÐòÖнøÐС£ÔÔòÉÏ£¬ÔÚ×Ó³ÌÐòÖУ¬Ê×ÏÈ°Ñ×Ó³ÌÐòÖÐÒªÓõ½µÄ¼Ä´æÆ÷¡¢´æ´¢µ¥Ôª¡¢×´Ì¬±êÖ¾µÈѹÈë¶ÑÕ»»ò´æÈëÌض¨¿Õ¼äÖУ¬È»ºó×Ó³ÌÐò²Å¿ÉÒÔʹÓÃËüÃÇ£¬Ê¹ÓÃÍêºóÔÙ½«ËüÃǵ¯³ö¶ÑÕ»»ò´ÓÌض¨¿Õ¼äÖÐÈ¡³ö£¬»Ö¸´ËüÃÇÔÀ´µÄÖµ£¬¼´»Ö¸´Ö÷³ÌÐòÏÖ³¡¡£±£»¤ºÍ»Ö¸´ÏÖ³¡³£Ê¹ÓÃ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 LEA CX, LENG PUSH BX DI- PUSH CX DI+ MOV AL, KEY SI+ CALL DELCHAR SP->BP BP- MOV AH, 4CH BP+ INT21H IP- MAIN ENDP
IP+ DELCHAR PROC
[BP+4]->SI CL PUSH BP
CH MOV BP, SP
[BP+6]->DI BL PUSH SI
BH PUSH DI CLD MOV SI, [BP+4] MOV CX, [SI] MOV DI, [BP+6]
REPNE SCASB JNE DONE MOV SI, [BP+4] DEC WORD PTR[SI] MOV SI, DI DEC DI REP MOVSB DONE: POP DI POP SI POP BP RET DELCHAR ENDP CODE ENDS END START
½â£º´Ó×Ö·û´®ÖÐɾȥ¶àÓàµÄX×Ö·û¡£
15. ÏÔʾÁ½Î»Ñ¹ËõBCDÂëÖµ£¨0~99£©£¬ÒªÇó²»ÏÔʾǰµ¼0¡£
½â£ºDATA SEGMENT
BUF DB ? ; ÄÚ´æÖеÄÁ½Î»Ñ¹ËõBCDÂë DATA ENDS
CODE SEGMENT ASSUME CS£ºCODE£¬DS£ºDATA START£º MOV AX,DATA
MOV DS,AX
MOV AL, BUF MOV BL,AL NEXT: MOV CL,4
SHR AL, CL AND AL,0FH CMP AL,0 JZ GOON ADD AL,30H ;ÏÔʾ¸ßλBCDÂë MOV DL,AL
MOV AH,2 INT 21H GOON: MOV AL,BL AND AL,0FH
ADD AL,30H ;ÏÔʾµÍλBCDÂë MOV DL,AL
MOV AH,2 INT 21H
MOV AH£¬4CH INT 21H
CODE ENDS
END START
16. ijÊý¾ÝÇøÖÐÁ¬Ðø´æ·Å×Å100¸öÕûÊý£¬ÒªÇó½«ÆäÖÐΪ0µÄÔªËØɾ³ý£¬²¢½«±£ÁôµÄ
Êý¾ÝÁ¬Ðø´æ·Å¡£
½â£º
DATA SEGMENT STRING DB 100(?) LENG DW 100 KEY DB 0 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 LEA CX, LENG PUSH BX PUSH CX MOV AL, KEY CALL DELCHAR MOV AH, 4CH INT21H MAIN ENDP
DELCHAR PROC PUSH BP MOV BP, SP PUSH SI PUSH DI CLD MOV SI, [BP+4] MOV CX, [SI] MOV DI, [BP+6] REPNE SCASB JNE DONE
MOV SI, [BP+4] DEC WORD PTR[SI] MOV SI, DI DEC DI REP MOVSB DONE: POP DI POP SI POP BP RET
DELCHAR ENDP CODE ENDS END START
17. ±à³Ì£¬°ÑÒÔDATAΪÊ×Ö·µÄÁ½¸öÁ¬Ðøµ¥ÔªÖеÄ16λÎÞ·ûºÅÊý³ËÒÔ10¡£
½â£ºDATA SEGMENT
BUFFER DB A3H,27H DATA ENDS
CODE SEGMENT ASSUME CS£ºCODE£¬DS£ºDATA START£º MOV AX,DATA
MOV DS,AX LEA SI,BUFFER
MOV AX,[SI] SHL AX,1 MOV BX,AX MOV CL,3 MOV AX,[SI] SHL AX,CL ADD AX,BX MOV BUFFER,AL MOV BUFFER+1,AH
MOV AH£¬4CH INT 21H
CODE ENDS
END START
18. ±à³Ì£¬±È½ÏÁ½¸ö×Ö´®ÊÇ·ñÏàͬ£¬²¢ÕÒ³öÆäÖеÚÒ»¸ö²»ÏàµÈ×Ö·ûµÄµØÖ·£¬½«¸ÃµØ
Ö·ËÍBX£¬²»ÏàµÈµÄ×Ö·ûËÍAL¡£Á½¸ö×Ö·û´®µÄ³¤¶È¾ùΪ200¸ö×Ö½Ú£¬M1ΪԴ´®Ê×µØÖ·£¬M2ΪĿ±ê´®Ê×µØÖ·¡£
½â£ºDATA SEGMENT
M1 DB 100DUP(?) DATA ENDS
EDATA SEGMENT
M2 DB 100DUP(?) EDATA ENDS CODE SEGMENT ASSUME CS£ºCODE£¬DS£ºDATA ,ES£ºEDATA START£º MOV AX,DATA
MOV DS,AX
MOV AX,EDATA MOV ES,AX LEA SI£¬M1 ;£¨SI£©¡ûÔ´´®Ê×µØÖ·
LEA DI£¬M2 ;£¨DI£©¡ûÄ¿±ê´®Ê×µØÖ·