΢»úÔ­ÀíÓë½Ó¿ÚµÚ¶þ°æ£¨³ÂºìÎÀ°æ£©²Î¿¼´ð°¸¼°¸´Ï°¸ÙÒª ÏÂÔØ±¾ÎÄ

INT 21H CODE ENDS

END START £¨1£©³ÌÐòÍê³Éʲô¹¦ÄÜ£¿

£¨2£©³ÌÐòÖÐNEG BLÖ¸ÁîµÄ×÷ÓÃÊÇʲô£¿

£¨3£©³ÌÐòÖ´ÐнáÊøºóRESULT×Öµ¥ÔªµÄÄÚÈÝÊÇʲô£¿

£¨4£©ÄÜ·ñÓÃMOV SI£¬OFFSET ABC´úÌæ³ÌÐòÖÐLEA SI£¬ABCÖ¸Á £¨5£©»ã±à½áÊøºó·ûºÅCOUNTµÄÖµÊÇʲô£¿

½â:£¨1£©³ÌÐòÍê³ÉÇóÒ»×éÓзûºÅ×Ö½ÚÊýµÄ¾ø¶ÔÖµÖ®ºÍ¡£ £¨2£©³ÌÐòÖÐNEG BLÖ¸ÁîµÄ×÷ÓÃÊÇÇó¸ºÊýµÄ¾ø¶ÔÖµ¡£ £¨3£©³ÌÐòÖ´ÐнáÊøºóRESULT×Öµ¥ÔªµÄÄÚÈÝÊÇ0120H¡£ £¨4£©ÄÜ¡£

£¨5£©»ã±à½áÊøºó·ûºÅCOUNTµÄÖµÊÇ06H¡£

6£®ÔĶÁÒÔϳÌÐò£¬»Ø´ðÎÊÌâ DSEG SEGMENT

ARRAY DB 34H,56H,23H,70H,96H COUNT EQU $-ARRAY

DSEG ENDS

SSEG SEGMENT PARA STACK ¡®STACK¡¯

DB 256 DUP£¨0£©

SSEG ENDS CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG,SS:SSEG

START:MOV AX,DSEG

MOV DS,AX

MOV SI,OFFSET ARRAY MOV CX,COUNT CLD

NEXT: LODSB

MOV BL,AL AND AL,0F0H PUSH CX MOV CL,4 SHR AL,CL

OR AL,30H CALL DISP MOV AL,BL AND AL,0FH OR AL,30H CALL DISP DEC CX JCXZ DONE

MOV AL,2CH £»¶ººÅµÄASCIIÂëΪ2CH

CALL DISP JMP NEXT

DONE:MOV AH,4CH £»ÖÕÖ¹µ±Ç°½ø³Ì£¬·µ»Øµ÷Óýø³Ì

INT 21H

DISP PROC NEAR

MOV AH,14 £»Ð´×Ö·ûµ½µ±Ç°¹â±êλÖ㬹â±êǰ½øÒ»¸ñ INT 10H RET

DISP ENDP

CSEG ENDS END START

£¨1£©³ÌÐòÖ´ÐнáÊøºó£¬ÆÁÄ»ÉÏÏÔʾµÄÄÚÈÝÊÇʲô£¿

£¨2£©³ÌÐòÖдøÏ»®ÏßµÄÖ¸Áî¿ÉÒÔÓÃʲôָÁîÌæ´ú£¨½öÒ»Ìõ£©£¿

£¨3£©³ÌÐòÖпոñ´¦Ó¦ÌîÈëʲôָÁ²ÅÄܱ£Ö¤³ÌÐò°´ÒªÇóÕý³£Ö´ÐУ¿ ½â:£¨1£©³ÌÐòÖ´ÐнáÊøºó£¬ÆÁÄ»ÉÏÏÔʾµÄÄÚÈÝÊÇ34£¬56£¬23£¬70£¬96¡£ £¨2£©³ÌÐòÖдøÏ»®ÏßµÄÖ¸Áî¿ÉÒÔÓÃLEA SI£¬ARRAYÖ¸ÁîÌæ´ú¡£

£¨3£©³ÌÐòÖпոñ´¦Ó¦ÌîÈëPOP CXÖ¸Á²ÅÄܱ£Ö¤³ÌÐò°´ÒªÇóÕý³£Ö´ÐС£

7£®AX¼Ä´æÆ÷ÖдæÓÐ4λѹËõBCDÂ룬ÊÔ±àд³ÌÐò½«Õâ4λÊý×Ö·Ö¿ª£¬²¢·Ö±ð´æÈëBH¡¢BL¡¢CHºÍCL¼Ä´æÆ÷ÖС£

½â: ²Î¿¼³ÌÐò¶ÎÈçÏÂ:

??

MOV DX,AX MOV CL,04H ROL AX,CL AND DX,0F0FH MOV BL,DH MOV CL,DL AND AX,0F0FH MOV BH,AL MOV CH,AH

??

?X/8,(0?X?20)8£®ÒÑÖªX¡¢YÊÇ×Ö½ÚÐ͵ÄÎÞ·ûºÅÕûÊý£¬±àд³ÌÐò¼ÆËãY??¡£

X?15,(20?X?30)?½â:²Î¿¼³ÌÐòÈçÏÂ:

DATA SEGMENT

X DB ? £»ÔËÐгÌÐòʱȡX·Ö±ðλÓÚÁ½¸ö·ÖÖ§ Y DB ? DATA ENDS

CODE SEGMENT

ASSUME CS:CODE£¬DS:DATA

START:MOV AX£¬DATA

MOV DS£¬AX MOV AL£¬X

CMP AL£¬20 JNC NEXT

MOV CL£¬03H SHR AL£¬CL JMP NEXT1

NEXT:SUB AL£¬15 NEXT1:MOV Y£¬AL

MOV AH£¬4CH

INT 21H

CODE ENDS END START

9£®±àд³ÌÐò£¬Í³¼Æ¼Ä´æÆ÷BXÖжþ½øÖÆÎ»¡°1¡±µÄ¸öÊý£¬½á¹û´æÔÚALÖС£ ½â:²Î¿¼³ÌÐòÈçÏÂ: CODE SEGMENT

ASSUME CS:CODE

START: MOV AL£¬00H MOV DX£¬BX MOV CX£¬16 AA: CMP DX£¬0 JZ NEXT SHL DX£¬1

JNC NEXT1 INC AL NEXT1: LOOP AA

NEXT: MOV AH£¬4CH

INT 21H CODE ENDS END START

10£®±àд³ÌÐò¶Î½«¼ÆËã»úÈÕÆÚÉèÖÃΪ2009Äê10ÔÂ1ÈÕ¡£ ½â:²Î¿¼³ÌÐò¶ÎÈçÏÂ:

MOV CX£¬2009H ;ÉèÖÃÄê MOV DH£¬10H ;ÉèÖÃÔ MOV DL£¬01H ;ÉèÖÃÈÕ MOV AH£¬2BH INT 21H HLT

11£®±àд³ÌÐòʵÏÖ½ÓÊÕÒ»¸ö×Ö·ûµÄÊäÈ룬²¢ÔÚÆÁÄ»ÉÏÓöþ½øÖÆÐÎʽ£¨0/1£©ÏÔʾ³öËüµÄASCIIÂëÖµ¡£

½â:²Î¿¼³ÌÐòÈçÏÂ: CODE SEGMENT

ASSUME CS:CODE£¬DS:DATA START: MOV AH£¬01H ;¼üÅÌÊäÈë

INT 21H MOV BL£¬AL

MOV CX£¬0007H

SHL BL,1 AA:SHL BL£¬1

JC NEXT1 MOV DL£¬¡¯0¡¯ JMP NEXT

NEXT1:MOV DL£¬¡¯1¡¯

NEXT: MOV AH£¬02H ;ÏÔʾÊä³ö7λASCIIÂëÖµ

INT 21H

LOOP AA MOV AH£¬4CH

INT 21H CODE ENDS

END START

12£®ÉèÊý¾Ý¿é´æ·ÅÔÚBUFFER¿ªÊ¼µÄ50¸ö×Ö½Úµ¥ÔªÖУ¬ÊÔ±àд³ÌÐòͳ¼ÆÊý¾Ý¿éÖÐÕýÊý£¨²»°üÀ¨0£©µÄ¸öÊý£¬²¢½«Í³¼ÆµÄ½á¹û´æ·Åµ½NUMBERµ¥ÔªÖС£

½â:²Î¿¼³ÌÐòÈçÏÂ: DATA SEGMENT

BUFFER DB 23H,00H,56H,89H,09H,30H DB 98H,11H,07H,? COUNT EQU $-BUFFER NUMBER DB 00H DATA ENDS

CODE SEGMENT

ASSUME CS:CODE£¬DS:DATA

START:MOV AX,DATA

MOV DS,AX MOV CX,COUNT LEA SI,BUFFER AA:MOV AL,[SI] CMP AL,00H JZ NEXT JS NEXT

INC NUMBER NEXT:INC SI

LOOP AA

MOV AH£¬4CH INT 21H CODE ENDS END START

13£®ÄÚ´æµÄÒ»¸öÇøÓòÖÐÓÐ100¸ö×Ö·ûÊÇÓÃСд×Öĸ±íʾµÄ£¬ÊÔ±àдһ¸ö³ÌÐò£¬°ÑËüÃÇת»»³É´óд×Öĸ£¬²¢ËÍÆÁÄ»ÏÔʾ¡£ ½â:²Î¿¼³ÌÐòÈçÏÂ:

DATA SEGMENT