41564736.doc¼¯ - 7 - ±àÕߣºÓ÷Æäɽ
3.9
Éè±êÖ¾¼Ä´æÆ÷ÖµÔΪ0401H£¬AX£½3272H£¬BX=42A2H¡£Ö´ÐÐÏÂÁмõ·¨Ö¸ÁîSBB AL£¬BHÖ®ºó£¬AXºÍ±êÖ¾¼Ä´æÆ÷µÄÖµ·Ö±ðÊǶàÉÙ£¿ ´ð£º (AX)= 322FH£¬(FR)= 0410H¡£
3.10 ÉèÈô±êÖ¾¼Ä´æÆ÷ÔֵΪ0A11H£¬SP=0060H£¬AL=4¡£ÏÂÁм¸ÌõÖ¸ÁîÖ´Ðкó£¬
±êÖ¾¼Ä´æÆ÷¡¢AX¡¢SPµÄÖµ·Ö±ðÊǶàÉÙ£¿ PUSHF LAHF
XCHG AH£¬AL PUSH AX SAHF POPF
´ð£º(FR)= 0411H£¬(AX)= 0411H£¬ (SP)= 005EH¡£ 3.11 Ö¸³öÏÂÁÐÖ¸ÁîµÄ´íÎó
(1) ADD SI,CL (2) MOV 50,AL (3) MOV CS, AX (4) MOV DS,1234H (5) SHL AX,05H (6) XCHG 200,AL (7) IN AX,378H (8) JNZ BX (9) MOV AH,CX (10) MOV 33H,AL (11) MOV AX,[SI][DI] (12) MOV [BX],[SI]
(13) ADD BYTE PTR [BP],256 (14) MOV DATA[SI],ES:AX (15) JMP BYTE PTR [BX] (16) OUT 230H,AX (17) MOV DS,BP (18) MUL 39H ´ð£º(1)¡¢SI£¬CL×Ö³¤²»Í¬¡£
(2)¡¢DEST²»ÄÜΪÁ¢¼´Êý50¡£ (3)¡¢DESTΪCS¶Î¼Ä´æÆ÷Ѱַ¡£ (4)¡¢Á¢¼´Êý²»ÄÜÖ±½ÓËͶμĴæÆ÷¡£ (5)¡¢¶à´ÎÒÆÎ»±ØÐëÒªÓÃCLÖ¸³öÀ´¡£
(6)¡¢DEST²»ÄÜΪÁ¢¼´Êý200£¨½»»»Ö¸Áî²»ÄÜÓÐÁ¢¼´ÊýѰַ£©¡£ (7)¡¢¶Ë¿ÚµØÖ·³¬¹ý0FFH±ØÐëÒªÓÃDX¼Ä´æÆ÷¼ä½ÓѰַ¡£
(8)¡¢Ìõ¼þ×ªÒÆÖ¸ÁîÖ»ÄÜÓöÌÄÚÖ±½Ó¶Ì×ªÒÆÑ°Ö·£¬²»ÄÜÓüĴæÆ÷Ѱַ¡£ (9)¡¢AH£¬CX×Ö³¤²»Í¬¡£
(10)¡¢DEST²»ÄÜΪÁ¢¼´Êý33H¡£
(11)¡¢SRC¿ÉΪ»ùÖ·±äַѰַ¡£µ«²»ÄÜΪ±äÖ·±äַѰַ¡£ (12)¡¢Ë«²Ù×÷ÊýÖ¸Áî²»ÄÜͬʱΪ´æ´¢Æ÷Ѱַ·½Ê½¡£ (13)¡¢×Ö³¤²»Í¬£º256²»ÊÇ×Ö½Ú³¤¶ÈÁË¡£
(14)¡¢¶Î¿çԽǰ׺Ӧ·ÅÔÚ´æ´¢Æ÷²Ù×÷Êý»òÕû¸öÖ¸ÁîµÄÇ°Ãæ¡£ (15)¡¢JMPÖ¸ÁîµÄѰַ·½Ê½²»ÄÜΪ×Ö½ÚÊôÐÔ¡£
(16)¡¢¶Ë¿ÚµØÖ·³¬¹ý0FFH±ØÐëÒªÓÃDX¼Ä´æÆ÷¼ä½ÓѰַ¡£ (17)¡¢Ö¸ÁîÕýÈ·¡£
(18)¡¢8086µÄ³Ë·¨Ö¸Áî²»ÄÜΪÁ¢¼´Êý¡£
41564736.doc¼¯ - 8 - ±àÕߣºÓ÷Æäɽ
3.12 ÈôÄÚ´æµ¥ÔªDATAÔÚÊý¾Ý¶ÎÖÐÆ«ÒÆÁ¿Îª24C0H´¦£¬24C0¡«24C3Hµ¥ÔªÖÐÒÀ
´Î´æ·Å×Å55H¡¢66H¡¢77H¡¢88H¡£ÏÂÁм¸ÌõÖ¸ÁîÖ´Ðк󣬼ĴæÆ÷AX¡¢BX¡¢CL¡¢SI¡¢DSµÄÖµ·Ö±ðÊǶàÉÙ£¿ MOV AX£¬ DATA LEA SI£¬ DATA MOV CL£¬ [SI] LDS BX£¬ DATA 3.13 Ìõ¼þ×ªÒÆÖ¸Áî¾ùΪÏà¶Ô×ªÒÆÖ¸ÁÇë½âÊÍ¡°Ïà¶Ô×ªÒÆ¡±º¬Ò壬ÊÔÎÊÈôÐëÍù½Ï
Ô¶µÄµØ·½½øÐÐÌõ¼þ×ªÒÆ£¬¸ÃÔõô°ì£¿ 3.14 ¼ÙÉ裨DS£©=212AH£¬(CS)=0200H£¬(IP)=1200H£¬(BX)=0500H£¬(DI)=2600H£¬
Î»ÒÆÁ¿DATA=40H (217A0H)=2300H£¬(217E0H)=0400H£¬(217E2H)=9000H¡£ ÊÔÈ·¶¨ÏÂÁÐ×ªÒÆÖ¸ÁîµÄ×ªÒÆµØÖ·¡£ (1) JMP 2300H (2)JMP WORD PTR[BX] (3) JMP DWORD PTR [BX+DATA] (4)JMP BX (5) JMP DWORD PTR [BX][DI] ´ð£º(1)¡¢0200H: 2300H¡£CS²»±ä
(2)¡¢0200H: 2300H¡£CS²»±ä (3)¡¢9000H: 0400H
(4)¡¢0200H: 0500H CS²»±ä (5)¡¢(23DA2H): (23DA0H) 3.15 Èô32λ¶þ½øÖÆÊý´æ·ÅÓÚDXºÍAXÖУ¬ÊÔÀûÓÃÒÆÎ»ÓëÑ»·Ö¸ÁîʵÏÖÒÔϲÙ
×÷£º
(1) DXºÍAXÖдæ·ÅµÄÎÞ·ûºÅÊý£¬½«Æä·Ö±ð³Ë2³ý2¡£ (2) ÈôDXºÍAXÖÐΪÓзûºÅÊý£¬½«Æä·Ö±ð³Ë2ºÍ³ý2¡£ ´ð£º(1)¡¢SHL AX, 1 £»AX³Ë2
RCL DX, 1 £»DX³Ë2 SHR DX, 1 £»DX³ý2 RCR AX, 1 £»AX³ý2 (2)¡¢SAL AX, 1 £»AX³Ë2
RCL DX, 1 £»DX³Ë2 SAR DX, 1 £»DX³ý2 RCR AX, 1 £»AX³ý2 3.16 ϶γÌÐòÍê³Éʲô¹¤×÷£¿
DATX1 DB 300DUP(?) DATX2 DB 100DUP(?)
MOV CX£¬100 MOV BX£¬200 MOV SI£¬0 MOV DI£¬0
41564736.doc¼¯ - 9 - ±àÕߣºÓ÷Æäɽ
NEST£º MOV AL£¬DATX1 [BX] [SI]
MOV DATX2 [DI]£¬AL INC SI INC DI LOOP NEXT
3.17 Ö´ÐÐÏÂÁÐÖ¸Áîºó£¬AX¼Ä´æÆ÷µÄÄÚÈÝÊÇʲô£¿
TABLE DW 10£¬20£¬30£¬40£¬50 £»000AH, 0014H, 001EH, 0028H, 0032H ENTRY DW 3
TABLE 0AH ¡¡
00H MOV BX£¬OFFSET TABLE
14H ADD BX£¬ENTRY
TABLE+3 00H
MOV AX£¬[BX]
1EH
´ð£º(AX)=1E00H¡£´æ´¢·½Ê½ÈçÓÒͼËùʾ£º
00H 28H 3.18 ·ÖÎöÏÂÃæµÄ³ÌÐò¶ÎÍê³Éʲô¹¦ÄÜ£¿
00H MOV CL£¬04
32H SHL DX£¬CL
00H MOV BL£¬AH
3.17ÌâµÄTABLESHL AX£¬CL
´æ´¢·½Ê½ SHR BL£¬CL
OR DL£¬BL
´ð£º³ÌÐò¶Î½« ((DX),(AX)) µÄË«×Öͬʱ×óÒÆ4룬¼´½«´ËË«×Ö³ËÒÔ10H (16)¡£ 3.19 ÊÔд³ö³ÌÐò¶Î°ÑDX¡¢AXÖеÄË«×ÖÓÒÒÆËÄλ¡£
3.20 µ±Ö´ÐÐÖжÏÖ¸Áîʱ£¬¶ÑÕ»µÄÄÚÈÝÓÐʲô±ä»¯£¿ÈçºÎÇóµÃ×Ó³ÌÐòµÄÈë¿ÚµØÖ·£¿ 3.21 ÊÔÊöÖжÏÖ¸ÁîIRETÓëRETÖ¸ÁîµÄÇø±ð¡£
3.22 ¸ù¾Ý¸ø¶¨µÄÌõ¼þд³öÖ¸Áî»òÖ¸ÁîÐòÁУº
(1)½«Ò»¸ö×Ö½ÚµÄÁ¢¼´ÊýË͵½µØÖ·ÎªNUMµÄ´æ´¢µ¥ÔªÖÐ? (2)½«Ò»¸ö8λÁ¢¼´ÊýÓëµØÖ·ÎªBUFµÄ´æ´¢µ¥ÔªÄÚÈÝÏà¼Ó? (3)½«µØÖ·ÎªARRAYµÄ´æ´¢µ¥ÔªÖеÄ×ÖÊý¾ÝÑ»·ÓÒÒÆÒ»Î»? (4)½«16λÁ¢¼´ÊýÓëµØÖ·ÎªMEMµÄ´æ´¢µ¥ÔªÖеÄÊý±È½Ï? (5)²âÊÔµØÖ·ÎªBUFFERµÄ×ÖÊý¾ÝµÄ·ûºÅλ? (6)½«AX¼Ä´æÆ÷¼°CF±ê־λͬʱÇåÁã?
(7)ÓÃÖ±½ÓѰַ·½Ê½½«Ê×µØÖ·ÎªARRAYµÄ×ÖÊý×éÖеÚ5¸öÊýËÍÍù¼Ä´æÆ÷BXÖÐ?
(8)ÓüĴæÆ÷Ѱַ·½Ê½½«Ê×µØÖ·ÎªARRAYµÄ×ÖÊý×éÖеÚ5¸öÊýËÍÍù¼Ä´æÆ÷BXÖÐ?
(9)ÓÃÏà¶ÔѰַ·½Ê½½«Ê×µØÖ·ÎªARRAYµÄ×ÖÊý×éÖеÚ8¸öÊýËÍÍù¼Ä´æÆ÷BX
41564736.doc¼¯ - 10 - ±àÕߣºÓ÷Æäɽ
ÖÐ?
(10)ÓûùÖ·±äַѰַ·½Ê½½«Ê×µØÖ·ÎªARRAYµÄ×ÖÊý×éÖеÚN¸öÊýËÍÍù¼Ä´æÆ÷BXÖÐ?
(11)½«Ê×µØÖ·ÎªBCD_BUF´æ´¢µ¥ÔªÖеÄÁ½¸öѹËõBCDÂëÏà¼Ó,²¢Ë͵½µÚÈý¸ö´æ´¢µ¥ÔªÖÐ?
µÚ 4 Õ »ã±àÓïÑÔ³ÌÐòÉè¼Æ
4.1 4.2 4.3 4.4 4.5
ʲôÊÇ»ã±àÓïÑÔ£¿Ê²Ã´ÊÇ»ã±àÓïÑÔ³ÌÐò£¿Ê²Ã´ÊÇ»ã±à£¿Ê²Ã´ÊÇ»ã±à³ÌÐò£¿ Ò»¸öÍêÕûµÄ»ã±àÓïÑÔ³ÌÐò½á¹¹ÉÏÓÐÊ²Ã´ÌØµã£¿ »ã±àÓïÑÔÓÐÄÄÈýÖÖ»ù±¾Óï¾ä£¿ËüÃǸ÷×ÔµÄ×÷ÓÃÊÇʲô£¿
Âß¼ÔËËã·ûÓëÂß¼ÔËËãÖ¸ÁîÖеÄÖú¼Ç·ûÓÐÍêÈ«ÏàͬµÄ·ûºÅ£¬ÈçºÎÇø±ðËüÃÇ£¿×÷ÓÃÓкβ»Í¬£¿
ÏÂÃæÁ½ÌõÓï¾ä»ã±àºó£¬Á½¸ö×Ö½Ú´æ´¢µ¥ÔªNUM1ºÍNUM2ÖеÄÄÚÈÝ·Ö±ðÊÇʲô£¿
NUM1 DB (12 OR 4 AND 2) GE 0EH NUM2 DB (12 XOR 4 AND 2) LE 0EH
´ð£º(1)¡¢NUM1ÖеÄÄÚÈÝÊÇ00H£»ÒòΪ12²»´óÓÚµÈÓÚ0EH
(2)¡¢NUM2ÖеÄÄÚÈÝÊÇ0FFH£»ÒòΪ12СÓÚµÈÓÚ0EH ÏÂÁÐÖ¸ÁîÖ´Ðкó£¬×Ö´æ´¢µ¥ÔªDA1ÖеÄÄÚÈÝÊǶàÉÙ£¿ DA1 EQU BYTE PTR DA2 DA2 DW 0ABCDH
¡¡
SHL DA1,1 SHR DA2,1
´ð£ºDA1ÖеÄÄÚÈÝÊÇ55CDH
¶ÔÏÂÃæµÄÊý¾Ý¶¨Ò壬¸÷ÌõMOVÖ¸Áîµ¥¶ÀÖ´Ðкó£¬ÓйؼĴæÆ÷µÄÄÚÈÝÊÇʲô£¿
NUMB1 DB ?
NUMB2 DW 20 DUP(?) NUMB3 DB ?USB?
1) MOV AX, TYPE NUMB1 2) MOV AX, TYPE NUMB2 3) MOV CX, LENGTH NUMB2 4) MOV DX, SIZE NUMB2 5) MOV CX, LENGTH NUMB3
4.6
4.7