΢»úÔ­Àí¼°½Ó¿Ú¼¼ÊõϰÌâ´ð°¸ ÏÂÔØ±¾ÎÄ

΢»úÔ­Àí¼°½Ó¿Ú¼¼ÊõϰÌâ¼°´ð°¸ ¡¤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