΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸ ¡¤17¡¤
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
¡¤18¡¤ ΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸
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
΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸ ¡¤19¡¤
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
×¢£º2X+23X=2X+8X=10X
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£©¡ûÄ¿±ê´®Ê×µØÖ·
¡¤20¡¤ ΢»úÔÀí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸
STOP:
MOV CX£¬200 ;£¨CX£©¡û´®³¤¶È CLD ;£¨DF£©=0£¬Ê¹µØÖ·Ö¸Õë°´ÔöÁ¿·½ÏòÐÞ¸Ä REPE CMPSB ;ÈôÏàµÈÔòÖØ¸´±È½Ï
AND CX£¬0FFFFH ;¼ì²é£¨CX£©ÊÇ·ñµÈÓÚÁã JZ STOP ;£¨CX£©=0ÔòתSTOP DEC SI ;£¨SI£©-1£¬Ö¸Ïò²»ÏàµÈµ¥Ôª MOV BX£¬SI ;£¨BX£©¡û²»ÏàµÈµ¥ÔªµÄµØÖ· MOV AL£¬[SI] ;£¨AL£©¡û²»ÏàµÈµ¥ÔªµÄÄÚÈÝ MOV AH£¬4CH INT 21H
CODE ENDS
END START
19. ±à³Ì£¬ÔÚÄÚ´æµÄÊý¾Ý¶ÎÖдæ·ÅÁË100¸ö8λ´ø·ûºÅÊý£¬ÆäÊ×µØÖ·ÎªTABLE£¬ÊÔͳ
¼ÆÆäÖÐÕýÔªËØ¡¢¸ºÔªËØ¡¢ºÍÁãÔªËØµÄ¸öÊý£¬²¢·Ö±ð½«¸öÊý´æÈëPLUS£¬MINUS£¬ZEROµÈ3¸öµ¥ÔªÖУ»
½â£ºDATA SEGMENT
TABLE DB 100DUP(?) DATA ENDS
CODE SEGMENT ASSUME CS£ºCODE£¬DS£ºDATA START£º MOV AX,DATA
MOV DS,AX XOR AL,AL
MOV PLUS,AL MOV MINUS,AL MOV ZERO,AL LEA SI,TABLE MOV CX,100 CLD CHECK:LODSB OR AL,AL JS X1 JZ X2 INC PLUS JMP NEXT
X1: INC MINUS JMP NEXT
X2: INC ZERO NEXT: LOOP CHECK : MOV AH£¬4CH
INT 21H CODE ENDS
END START