΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ£¨µÚ¶þ°æ£©¹¨Éи£ - ¸´Ï°Ìâ½âÎöºÍʵÑéÖ¸µ¼ ÏÂÔر¾ÎÄ

3.16 ½âÊÍXLATÖ¸ÁîÊÇÔõÑùת»»AL¼Ä´æÆ÷ÖеÄÈݵġ£²¢±àдһ¶Î³ÌÐòÓÃXLATÖ¸ÁBCDÂë0¡«9ת»»³É¶ÔÓ¦µÄASCIIÂ룬²¢½«ASCIIÂë´æÈëÊý¾ÝARRAYÖС£ ¡¾½â¡¿£ºXLATÖ¸ÁîÊǽ«ALµÄÈÝÌæ»»³É´æ´¢µ¥ÔªÖеÄÒ»¸öÊý£¬ÍùÍùÓÃÓÚ´úÂëת»»¡£Ê¹ÓôËÖ¸ÁîÇ°£¬ÏÈÔÚÊý¾Ý¶Î½¨Á¢Ò»¸ö±í¸ñ£¬±í¸ñÊ×µØÖ·´æÈëBX¼Ä´æÆ÷£¬ÓûÈ¡´úÂëµÄ±íλÒÆÁ¿´æÈëAL¼Ä´æÆ÷ÖС£XLATÖ¸Á(AL)ÖµÀ©Õ¹³É16룬Óë(BX)Ïà¼ÓÐγÉÒ»¸ö¶ÎÆ«ÒƵØÖ·£¬¶ÎµØÖ·È¡(DS)£¬¾Ý´Ë¶Á³ö´úÂëËÍÈëAL¼Ä´æÆ÷¡£

³ÌÐòÈçÏ£ºTABLE DB 30H, 31H, ©©, 39H ARRAY DB 1O DUP(?) MOV CL, 10 MOV SI, 0

MOV BX, OFFSET TABLE MOV AL, AL AGAIN: XLAT

MOV [SI], AL INC SI INC AL LOOP AGAIN

3.17 Èô(AX)=0001H£¬(BX)=0FFFFH£¬Ö´ÐÐADD AX£¬BXÖ®ºó£¬±ê־λZF¡¢SF¡¢CFºÍOF¸÷ÊÇʲô£¿ ¡¾½â¡¿£º (AX)= 0001H = 0000 0000 0000 0001 B + (BX)=0FFFFH = 1111 1111 1111 1111 B

(AX)= 0001H = 1 0000 0000 0000 0000 B Ôò£ºZF=1¡¢SF=0¡¢CF=1¡¢OF=0 3.18 дһָÁîÐòÁÐÍê³É½«AX¼Ä´æÆ÷µÄ×îµÍ4λÖÃ1£¬×î¸ß3λÇå0£¬µÚ7¡¢8¡¢9λȡ·´£¬ÆäÓàλ²»±ä¡£ ¡¾½â¡¿£º OR AX, 000FH (OR AX, 0000 0000 0000 1111 B) AND AX, 1FFFH (AND AX, 0001 1111 1111 1111 B) XOR AX, 01C0H (XOR AX, 0000 0001 1100 0000 B)

3.19 ÊÔд³öÖ´ÐÐÏÂÁÐÖ¸ÁîÐòÁкóAX¼Ä´æÆ÷µÄÈÝ¡£Ö´ÐÐ Ç°(AX)=1234H¡£ MOV CL£¬7 SHL BX£¬CL ¡¾½â¡¿£º(AX) = 1234H = 0001 0010 0011 0100 B

Ö´Ðкó£º(AX) = 0 0011 0100 0000 000 B = 0001 1010 0000 0000 B = 1A00H 4.1 ¼ÙÉèÏÂÁÐÖ¸ÁîÖеÄËùÓбêʶ·û¾ùΪÀàÐÍÊôÐÔΪ×ֵıäÁ¿£¬ÇëÖ¸³öÏÂÁÐÖ¸ÁîÖÐÄÄЩÊÇ·Ç·¨µÄ?ËüÃǵĴíÎóÊÇʲô?

¢Å MOV BP£¬AL ¢Æ MOV WORD_OP[BX+4*3][DI]£¬SP ¢Ç MOV WORD_OP1£¬WORD_OP2 ¢È MOV AX£¬WORD_OP1[DX]

¢É MOV SAVE WORD£¬DS ¢Ê MOV SP£¬SS£ºDATA_WORD[BX][SI] ¢Ë MOV [BX][SI]£¬2 ¢Ì MOV AX£¬WORD_OP1+WORD_OP2

¢Í MOV AX£¬WORD_OP1-WORD_OP2+100 ¢Î MOV WORD_OP1£¬WORD_OP1-WORD_OP2 ¡¾½â¡¿£º¢Å MOV BP£¬AL Á½¸ö²Ù×÷Êý²»Æ¥Åä

¢Æ MOV WORD_OP[BX+4*3][DI]£¬SP

¢Ç MOV WORD_OP1£¬WORD_OP2 Á½¸ö´æµ¥ÔªÖ®¼ä²»ÄÜÖ±½Ó´«ËÍÊý¾Ý ¢È MOV AX£¬WORD_OP1[DX]

¢É MOV SAVE WORD£¬DS

¢Ê MOV SP£¬SS£ºDATA_WORD[BX][SI] µ±»ùַΪBXʱ£¬Ñ¡È¡DS¼Ä´æÆ÷ ¢Ë MOV [BX][SI]£¬2 ¢Ì MOV AX£¬WORD_OP1+WORD_OP2

¢Í MOV AX£¬WORD_OP1-WORD_OP2+100 ¢Î MOV WORD_OP1£¬WORD_OP1-WORD_OP2

4.2 ¼ÙÉèVAR1ºÍVAR2Ϊ×Ö±äÁ¿£¬LABΪ±êºÅ£¬ÊÔÖ¸³öÏÂÁÐÖ¸ÁîµÄ´íÎóÖ®´¦£º ¢Å ADD VAR1£¬VAR2 ¢Æ SUB AL,VAR1 ¢Ç JMP LAB[SI] ¢È JNZ VAR1 ¢É JMP NEAR LAB ¡¾½â¡¿£º¢Å ADD VAR1£¬VAR2

ADDÁ½¸ö²Ù×÷Êý²»ÄÜͬʱΪ´æ´¢µ¥Ôª£¬ MOV AX, VAR1

ADD AX, VAR2 ¢Æ SUB AL,VAR1 Á½¸ö²Ù×÷Êý²»Æ¥Åä SUB AX, VAR1 ¢Ç JMP LAB[SI] LABÓë[SI]²»ÄÜÏà¼Ó

JMP WORD PTR [SI] ¢È JNZ VAR1

JNZºóÃæÓ¦ÊDZêºÅ£¬²»Ó¦ÊDZäÁ¿ JNZ LAB

¢É JMP NEAR LAB ȱÉÙPTRÔËËã·û JMP NEAR PTR LAB

4.3 »­Í¼ËµÃ÷ÏÂÁÐÓï¾äËù·ÖÅäµÄ´æ´¢¿Õ¼ä¼°³õʼ»¯µÄÊý¾ÝÖµ¡£

¢Å BYTE_VAR DB ¡¯BYTE¡¯£¬12£¬-12H£¬3 DUP(0£¬?£¬2 DUP(1£¬2)£¬?) ¢Æ WORD_VAR DW 5 DUP(0£¬1£¬2)£¬?£¬-5£¬£¬'BY'£¬'TE'£¬256H ¡¾½â¡¿£º(1) (2) WORD_VAR BYTE_VAR 41H 00H B 0 59H 00H Y T 54H 01H 1 E 45H 00H

0CH 12 02H 2 F4H £­12H 00H 00H 0 ¡­ £­ 00H 0 01H 1 00H

02H 2 01H 1 01H 1 00H 02H 2 02H 2 00H 0 00H

£­ £­ 2 01H 1 £­ FBH 02H 2 £­5 FFH 01H 1

41H 02H 2 B 00H 00H 0 £­ 01H 02H 01H 02H 1 2 1 2 59H 00H 54H 00H 45H 00H 56H Y T E 30¸ö×Ö½Ú

256H 02H

4.4 ¼ÙÉè³ÌÐòÖеÄÊý¾Ý¶¨ÒåÈçÏ£º PARTNO DW ?

PNAME DB 16 DUP(?) COUNT DD ?

PLENTH EQU $-PARTNO

ÎÊPLENTHµÄֵΪ¶àÉÙ?Ëü±íʾʲôÒâÒå? ¡¾½â¡¿£ºPLENTHµÄֵΪ22£¬Ëü±íʾÊý¾ÝµÄ¸öÊý¡£ 4.5 ÓзûºÅ¶¨ÒåÓï¾äÈçÏ£º

BUFF DB 1£¬2£¬3£¬¡¯123¡¯ EBUFF DB 0

L EQU EBUFF-BUFF ÎÊLµÄÖµÊǶàÉÙ? ¡¾½â¡¿£ºPLENTHµÄֵΪ6¡£

4.6 ¼ÙÉè³ÌÐòÖеÄÊý¾Ý¶¨ÒåÈçÏ£º LNAME DB 30 DUP(?) ADDRESS DB 30 DUP(?) CITY DB 15 DUP(?) CODE-LIST DB 1£¬7£¬8£¬3£¬2

¢Å ÓÃÒ»ÌõMOVÖ¸ÁLNAMEµÄÆ«ÒƵØÖ··ÅÈëAX¡£

¢Æ ÓÃÒ»ÌõÖ¸ÁCODE_LISTµÄÍ·Á½¸ö×Ö½ÚµÄÈÝ·ÅÈëSI¡£

¢Ç дһÌõα²Ù×÷ʹCODE_LENGHTµÄÖµµÈÓÚCODE_LISTÓòµÄʵ¼Ê³¤¶È¡£ ¡¾½â¡¿£º ¢Å ÓÃÒ»ÌõMOVÖ¸ÁLNAMEµÄÆ«ÒƵØÖ··ÅÈëAX¡£ MOV AX, OFFSET LANME

¢Æ ÓÃÒ»ÌõÖ¸ÁCODE_LISTµÄÍ·Á½¸ö×Ö½ÚµÄÈÝ·ÅÈëSI¡£ MOV SI, WORD PTR CODE_LSIT

¢Ç дһÌõα²Ù×÷ʹCODE_LENGHTµÄÖµµÈÓÚCODE_LISTÓòµÄʵ¼Ê³¤¶È¡£ CODE_LENGHT EQU CITY-CODE_LIST

4.7 ÊÔд³öÒ»¸öÍêÕûµÄÊý¾Ý¶ÎDATA_SEG£¬Ëü°ÑÕûÊý5¸³ÓèÒ»¸ö×Ö½Ú£¬²¢°ÑÕûÊý-1£¬0£¬2£¬5ºÍ4·ÅÔÚ10×ÖÊý×éDATA_LISTµÄÍ·5¸öµ¥ÔªÖС£È»ºó£¬Ð´³öÍêÕûµÄ´úÂë¶Î£¬Æ书ÄÜΪ£º°ÑDATA_LISTÖÐÍ·5¸öÊýÖеÄ×î´óÖµºÍ×îСֵ·Ö±ð´æÈëMAXºÍMINµ¥ÔªÖС£ ¡¾½â¡¿£º²Î¿¼³ÌÐòÈçÏ£º

DATA_SEG SEGMENT DB1 DB 5

DATA_LIST DB -1, 0, 2, 5, 4, 5 DUP(?) COUNT DB 5 MAX DB ? MIN DB ?

DATA_SEG ENDS CODE_SEG SEGMENT

ASSUME CS:CODE_SEG, DS:DATA_SEG START PROC FAR PUSH DS MOV AX, 0 PUSH AX

MOV AX, DATA_SEG MOV DS, AX

LEA BX, DATA_LIST MOV CX, COUNT-1 MOV AL, [BX] MOV AH, [BX+1] LOOP1: INC BX CMP AH, AL JAE LOOP1 XCHG AH, AL LOOP2 INC BX

CMP AH, [BX] JAE LIS

XCHG AH, [BX] JMP LOP2

LIS: CMP AL , [BX] JBE LOP2

XCHG AL, [BX] LOOP2

MOV MAX, AH MOV MIN, AL RET START ENDP CODE_SEG ENDS

END START 4.10 ¸ø³öµÈÖµÓï¾äÈçÏ£º ALPHA EQU 100 BETA EQU 25 GAMMA EQU 2

ÏÂÁбí´ïʽµÄÖµÊǶàÉÙ?

¢Å ALPHA*100+BETA ¢Æ ALPHA MOD GAMMA+BETA ¢Ç (ALPHA+2)*BETA-2 ¢È (BETA/3) MOD 5 ¢É (ALPHA+3)*(BETA MOD GAMMA) ¢Ê ALPHA GE GAMMA ¢Ë BETA AND 7 ¢Ì GAMMA OR 3 ¡¾½â¡¿£º ¢Å ALPHA*100+BETA

100¡Á10025£½10025 ¢Æ ALPHA MOD GAMMA+BETA