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

¡¾½â¡¿£º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 30¸ö×Ö½Ú ¡­ £­ 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 59H £­ Y

01H 02H 01H 02H 1 2 1 2 00H 54H 00H 45H 00H 56H T E

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+2)*BETA-2 ¢É (ALPHA+3)*(BETA MOD GAMMA) ¢Ë BETA AND 7 ¡¾½â¡¿£º ¢Å ALPHA*100+BETA 100¡Á10025£½10025 ¢Æ ALPHA MOD GAMMA+BETA 100/(25£«2)£½19

¢Æ ALPHA MOD GAMMA+BETA ¢È (BETA/3) MOD 5

¢Ê ALPHA GE GAMMA ¢Ì GAMMA OR 3