IBM-PC»ã±àÓïÑÔ³ÌÐòÉè¼Æ´ð°¸£¨µÚ2°æ£©

(3) JNB¡¢JNBE¡¢JL¡¢JLE (4) JNB¡¢JNBE¡¢JNL¡¢JNLE (5) JNB¡¢JNBE¡¢JL¡¢JLE (6) JB¡¢JBE¡¢JL¡¢JLE (7) JB¡¢JBE¡¢JNL¡¢JNLE (8) JNB¡¢JNBE¡¢JL¡¢JLE

3.36 ¼ÙÉèXºÍX+2µ¥ÔªµÄÄÚÈÝΪ˫¾«¶ÈÊýp£¬YºÍY+2µ¥ÔªµÄÄÚÈÝΪ˫¾«¶ÈÊýq£¬(XºÍYΪµÍλ×Ö)

ÊÔ˵Ã÷ÏÂÁгÌÐò¶Î×öʲô¹¤×÷£¿

MOV DX, X+2 MOV AX, X ADD AX, X ADC DX, X+2 CMP DX, Y+2 JL L2 JG L1 CMP AX, Y JBE L2

L1£º MOV AX, 1

JMP SHORT EXIT

L2£º MOV AX, 2 EXIT£ºINT 20H

´ð£º´Ë³ÌÐò¶ÎÅжÏp*2£¾q£¬Ôòʹ(AX)=1ºóÍ˳ö£»p*2¡Üq£¬Ôòʹ(AX)=2ºóÍ˳ö¡£ 3.37 ÒªÇó²âÊÔÔÚSTATUSÖеÄÒ»¸ö×Ö½Ú£¬Èç¹ûµÚ1¡¢3¡¢5λ¾ùΪ1Ôò×ªÒÆµ½ROUTINE_1£»Èç¹û´ËÈýλ

ÖÐÓÐÁ½Î»Îª1Ôò×ªÒÆµ½ROUTINE_2£»Èç¹û´ËÈýλÖÐÖ»ÓÐһλΪ1Ôò×ªÒÆµ½ROUTINE_3£»Èç¹û´ËÈýλȫΪ0Ôò×ªÒÆµ½ROUTINE_4¡£ÊÔ»­³öÁ÷³Ìͼ£¬²¢±àÖÆÏàÓ¦µÄ³ÌÐò¶Î¡£ ´ð£º³ÌÐò¶ÎÈçÏ£º

³ÌÐò¿ªÊ¼ MOV AL, STATUS

AND AL, 00010101B £»Ö»±£ÁôµÚ1¡¢3¡¢5λ (AL)¡û(STATUS)Ö»±£ÁôµÚ1,3,5JZ ROUTINE_4 £»3λȫΪ0תROUTINE_4 JPE ROUTINE_2 £»Á½Î»Îª1תROUTINE_2 CMP AL, 00010101B ȫΪ0Âð? Y JZ ROUTINE_1 £»3λȫΪ1תROUTINE_1 N ROUTINE_3: ©« £»½öһλΪ1Ö´ÐÐROUTINE_3 תȥִÐÐJMP EXIT ¶þλΪ1Âð? ROUTINE_4 Y ROUTINE_1: ©« JMP EXIT N ROUTINE_2: ©« Y ȫΪ1Âð? JMP EXIT

ROUTINE_4: ©« N תȥִÐÐתȥִÐÐEXIT: INT 20H ROUTINE_2 ½öһλΪ1Ö´ÐÐROUTINE_1 ROUTINE_3 3.38 ÔÚÏÂÁгÌÐòµÄÀ¨ºÅÖзֱðÌîÈëÈçÏÂÖ¸Á (1) LOOP L20 (2) LOOPE L20 (3) LOOPNE L20

Ö´ÐÐEXIT³ÌÐò½áÊø ÊÔ˵Ã÷ÔÚÈýÖÖÇé¿öÏ£¬µ±³ÌÐòÖ´ÐÐÍêºó£¬AX¡¢BX¡¢ CX¡¢DXËĸö¼Ä´æÆ÷µÄÄÚÈÝ·Ö±ðÊÇʲô£¿

3.44ÌâµÄ³ÌÐòÁ÷³Ìͼ TITLE EXLOOP.COM

CODESG SEGMENT

ASSUME CS:CODESG, DS: CODSEG, SS: CODSEG ORG 100H

BEGIN: MOV AX, 01

MOV BX, 02 MOV DX, 03 MOV CX, 04

L20:

INC AX ADD BX, AX SHR DX, 1 ( ) RET

CODESG ENDS

END BEGIN

´ð£º(1) (AX)=5H£¬(BX)=10H£¬(CX)=0H£¬(DX)=0H

(2) (AX)=2H£¬(BX)=4H£¬(CX)=3H£¬(DX)=1H (3) (AX)=3H£¬(BX)=7H£¬(CX)=2H£¬(DX)=0H

3.39 ¿¼ÂÇÒÔϵĵ÷ÓÃÐòÁУº

(1) MAINµ÷ÓÃNEARµÄSUBA¹ý³Ì(·µ»ØµÄÆ«ÒÆµØÖ·Îª0400)£» (2) SUBAµ÷ÓÃNEARµÄSUBB¹ý³Ì(·µ»ØµÄÆ«ÒÆµØÖ·Îª0A00)£»

(3) SUBBµ÷ÓÃFARµÄSUBC¹ý³Ì(·µ»ØµÄ¶ÎµØÖ·ÎªB200£¬·µ»ØµÄÆ«ÒÆµØÖ·Îª0100)£» (4) ´ÓSUBC·µ»ØSUBB£»

(5) SUBBµ÷ÓÃNEARµÄSUBD¹ý³Ì(·µ»ØµÄÆ«ÒÆµØÖ·Îª0C00)£» (6) ´ÓSUBD·µ»ØSUBB£» (7) ´ÓSUBB·µ»ØSUBA£» (8) ´ÓSUBA·µ»ØMAIN£»

(9) ´ÓMAINµ÷ÓÃSUBC(·µ»ØµÄ¶ÎµØÖ·Îª1000£¬·µ»ØµÄÆ«ÒÆµØÖ·Îª0600)£» Çë»­³öÿ´Îµ÷Óü°·µ»ØÊ±µÄ¶Ñջ״̬¡£

´ð£ºÃ¿´Îµ÷Óü°·µ»ØÊ±µÄ¶Ñջ״̬ͼÈçÏÂËùʾ£º

00 ÐÂSPλÖà 00 Ô­SPλÖà 01 01

00 00 00 ÐÂSPλÖà B2 B2 0A 00 ÐÂSPλÖà 00 Ô­SPλÖà 00 ÐÂSPλÖà 00 Ô­SPλÖà 04 0A 0A 04 Ô­SPλÖà 00 00 (2) SUBAµ÷ (1) MAINµ÷ (3) SUBBµ÷ (4) ´ÓSUBC ÓÃSUBB¹ý³Ì Óà SUBA¹ý³Ì ÓÃSUBC¹ý³Ì ·µ»ØSUBB

00 00 00 00 00 01 01 01 01 01 00 ÐÂSPλÖà 00 Ô­SPλÖà 00 00 00 0C 0C 0C 0C 0C 00 Ô­SPλÖà 00 ÐÂSPλÖà 00 Ô­SPλÖà 00 00 ÐÂSPλÖà 0A 0A 0A 0A 06 00 00 00 ÐÂSPλÖà 00 Ô­SPλÖà 00 04 04 04 04 10 ÐÂSPλÖà ԭSPλÖÃ

(5) SUBBµ÷ (6) ´ÓSUBD (7) ´ÓSUBB (8) ´ÓSUBA (9) ´ÓMAIN

ÓÃSUBD¹ý³Ì ·µ»ØSUBB ·µ»ØSUBA ·µ»ØMAIN µ÷ÓÃSUBC

3.40 ¼ÙÉè(EAX)=00001000H£¬(EBX)=00002000H£¬(DS)=0010H£¬ÊÔÎÊÏÂÁÐÖ¸Áî·ÃÎÊÄÚ´æµÄÎïÀíµØÖ·ÊÇ

ʲô£¿

(1) MOV ECX£¬[EAX+EBX] (2) MOV [EAX+2*EBX]£¬CL

(3) MOV DH£¬[EBX+4*EAX+1000H]

´ð£º(1) PA=(DS)*10H+EA=00100H+00001000H+00002000H=00003100H

(2) PA=(DS)*10H+EA=00100H+00001000H+2*00002000H=00005100H

(3) PA=(DS)*10H+EA=00100H+00002000H+4*00001000H+1000H=00007100H 3.41 ¼ÙÉè(EAX)=9823F456H£¬(ECX)=1F23491H£¬(BX)=348CH£¬(SI)=2000H£¬(DI)=4044H¡£ÔÚDS¶ÎÖÐ

´ÓÆ«ÒÆµØÖ·4044Hµ¥Ôª¿ªÊ¼µÄ4¸ö×Ö½Úµ¥ÔªÖУ¬ÒÀ´Î´æ·ÅµÄÄÚÈÝΪ92H£¬6DH£¬0A2HºÍ4CH£¬ÊÔÎÊÏÂÁи÷ÌõÖ¸ÁîÖ´ÐÐÍêºóµÄÄ¿µÄµØÖ·¼°ÆäÖеÄÄÚÈÝÊÇʲô£¿ (1) MOV [SI]£¬EAX

(2) MOV [BX]£¬ECX (3) MOV EBX£¬[DI]

´ð£º(1) Ä¿µÄµØÖ·ÎªDS:2000H£¬ÄÚÈÝÒÀ´ÎΪ£º56H£¬0F4H£¬23HºÍ98H

(2) Ä¿µÄµØÖ·ÎªDS:348CH£¬ÄÚÈÝÒÀ´ÎΪ£º91H£¬34H£¬0F2HºÍ01H (3) Ä¿µÄ²Ù×÷ÊýΪEBX¼Ä´æÆ÷£¬(EBX)=4CA26D92H 3.42 ˵Ã÷ÏÂÁÐÖ¸ÁîµÄ²Ù×÷

(1) PUSH AX (2) POP ESI (3) PUSH [BX] (4) PUSHAD (5) POP DS (6) PUSH 4 ´ð£º¼û×¢ÊÍ¡£

£»½«(AX)ѹÈë¶ÑÕ» £»½«¶ÑÕ»ÖеÄË«×Öµ¯³öµ½ESI¼Ä´æÆ÷ÖÐ £»½«((BX))¶ÔÓ¦´æ´¢µ¥ÔªÖеÄ×ÖѹÈë¶ÑÕ» £»32λͨÓüĴæÆ÷ÒÀ´Î½øÕ» £»½«¶ÑÕ»ÖеÄ×Öµ¯³öµ½DS¼Ä´æÆ÷ÖÐ £»½«Á¢¼´Êý4ÒÔ×ֵķ½Ê½Ñ¹Èë¶ÑÕ»

3.43 Çë¸ø³öÏÂÁи÷Ö¸ÁîÐòÁÐÖ´ÐÐÍêºóÄ¿µÄ¼Ä´æÆ÷µÄÄÚÈÝ¡£

(1) MOV EAX£¬299FF94H

ADD EAX£¬34FFFFH £»(EAX)= 2CEFF93H (2) MOV EBX£¬40000000

SUB EBX£¬1500000 £»(EBX)= 3EB00000H (3) MOV EAX£¬39393834H

AND EAX£¬0F0F0F0FH £»(EAX)= 09090804H (4) MOV EDX£¬9FE35DH

XOR EDX£¬0F0F0F0H £»(EDX)= 6F13ADH ´ð£º¼û×¢ÊÍ¡£ 3.44 Çë¸ø³öÏÂÁи÷Ö¸ÁîÐòÁÐÖ´ÐÐÍêºóÄ¿µÄ¼Ä´æÆ÷µÄÄÚÈÝ¡£

(1) MOV BX£¬-12

MOVSX EBX£¬BX £»(EBX)= 0FFFF FFF4H (2) MOV CL£¬-8

MOVSX EDX£¬CL £»(EDX)= 0FFFF FFF8H (3) MOV AH£¬7

MOVZX ECX£¬AH £»(ECX)= 0000 0007H (4) MOV AX£¬99H

MOVZX EBX£¬AX £»(EBX)= 0000 0099H ´ð£º¼û×¢ÊÍ¡£ 3.45 Çë¸ø³öÏÂÁÐÖ¸ÁîÐòÁÐÖ´ÐÐÍêºóEAXºÍEBXµÄÄÚÈÝ¡£

MOV ECX£¬307 F455H BSF EAX£¬ECX £»(EAX)= 0D BSR EBX£¬ECX £»(EBX)= 25D ´ð£º¼û×¢ÊÍ¡£ 3.46 Çë¸ø³öÏÂÁÐÖ¸ÁîÐòÁÐÖ´ÐÐÍêºóAXºÍDXµÄÄÚÈÝ¡£

MOV BX£¬98H BSF AX£¬BX £»(AX)= 3D BSR DX£¬BX £»(DX)= 7D ´ð£º¼û×¢ÊÍ¡£

3.47 Çë±àдһ³ÌÐò¶Î£¬ÒªÇó°ÑECX¡¢EDXºÍESIµÄÄÚÈÝÏà¼Ó£¬ÆäºÍ´æÈëEDI¼Ä´æÆ÷ÖÐ(²»¿¼ÂÇÒç³ö)¡£

´ð£ºMOV EDI£¬0 Ò²¿ÉΪ£º MOV EDI£¬ECX

ADD EDI£¬ECX ADD EDI£¬EDX ADD EDI£¬EDX ADD EDI£¬ESI ADD EDI£¬ESI 3.48 Çë˵Ã÷IMUL BX£¬DX£¬100HÖ¸ÁîµÄ²Ù×÷¡£ ´ð£º(BX)¡û(DX)*100H

3.49 ÊÔ±àдһ³ÌÐò¶Î£¬ÒªÇó°ÑBLÖеÄÊý³ýÒÔCLÖеÄÊý£¬²¢°ÑÆäÉ̳ËÒÔ2£¬×îºóµÄ½á¹û´æÈëDX¼Ä´æ

Æ÷ÖС£

´ð£ºMOV AL£¬BL

MOV AH£¬0 £»¼Ù¶¨ÎªÎÞ·ûºÅÊý£¬·ñÔòÓÃCBWÖ¸Áî¼´¿É DIV CL MOV AH£¬0 SHL AX£¬1 MOV DX£¬AX 3.50 Çë˵Ã÷JMP DIºÍJMP [DI]Ö¸ÁîµÄÇø±ð¡£

´ð£ºJMP DIÊÇ×ªÒÆµ½ÒÔ(DI)ÄÚÈÝÎªÆ«ÒÆµØÖ·µÄµ¥ÔªÈ¥Ö´ÐÐÖ¸ÁJMP [DI]ÊÇ×ªÒÆµ½ÒÔ(DI)¼ä½Ó

ѰַµÄÄÚ´æµ¥ÔªÄÚÈÝÎªÆ«ÒÆµØÖ·µÄµ¥ÔªÈ¥Ö´ÐÐÖ¸Áî¡£ 3.51 ÊÔ±àдһ³ÌÐò¶Î£¬ÒªÇóÔÚ³¤¶ÈΪ100H×Ö½ÚµÄÊý×éÖУ¬ÕÒ³ö´óÓÚ42HµÄÎÞ·ûºÅÊýµÄ¸öÊý²¢´æÈë×Ö

½Úµ¥ÔªUPÖУ»ÕÒ³öСÓÚ42HµÄÎÞ·ûºÅÊýµÄ¸öÊý²¢´æÈë×Ö½Úµ¥ÔªDOWNÖС£ ´ð£ºJMP BEGIN

UP DB 0 DOWN DB 0 ´æ´¢Æ÷ TABLE DB 100H DUP (?) £»Êý×é 002EH ÐÂ(SP) 002FH BEGIN£º

0030H MOV CX£¬100H

0031H MOV BX£¬-1

0032H MOV SI£¬0

0033H MOV DI£¬0

0034H ¶Ñ L1£ºINC BX 0035H Õ»CMP TABLE[BX]£¬42H 0036H Ö¡ JA L2 0037H JB L3 0038H JMP L4 0039H L2£ºINC SI 003AH JMP L4 003BH 003CH L3£ºINC DI

003DH L4£ºLOOP L1

ÐÂ(BP) Ô­(BP)µÍ×Ö½Ú 003EH MOV UP£¬SI

Ô­(BP)¸ß×Ö½Ú 003FH MOV DOWN£¬DI

0040H Ô­(SP) 3.52 ÇëÓÃͼ±íʾENTER 16£¬0ËùÉú³ÉµÄ¶ÑÕ»Ö¡µÄÇé¿ö¡£

3.52ÌâµÄ´ð°¸ ´ð£º´ð°¸¼ûÓÒͼ¡£

µÚ ËÄ ÕÂ. ϰ Ìâ

4.1 Ö¸³öÏÂÁÐÖ¸ÁîµÄ´íÎó£º

(1) MOV AH, BX (2) MOV [BX], [SI] (3) MOV AX, [SI][DI] (4) MOV MYDAT [BX][SI], ES:AX (5) MOV BYTE PTR [BX], 1000 (6) MOV BX, OFFSET MYDAT [SI] (7) MOV CS, AX (8) MOV ECX, AX ´ð£º¼û×¢ÊÍ¡£

£»¼Ä´æÆ÷ÀàÐͲ»Æ¥Åä £»²»Äܶ¼ÊÇ´æ´¢Æ÷²Ù×÷Êý £»[SI]ºÍ[DI]²»ÄÜÒ»ÆðʹÓà £»AX¼Ä´æÆ÷²»ÄÜʹÓöγ¬Ô½ £»1000³¬¹ýÁËÒ»¸ö×ֽڵķ¶Î§

£»MYDAT [SI]ÒѾ­ÊÇÆ«ÒƵØÖ·,²»ÄÜÔÙʹÓÃOFFSET £»CS²»ÄÜÓÃ×÷Ä¿µÄ¼Ä´æÆ÷ £»Á½¸ö²Ù×÷ÊýµÄÊý¾ÝÀàÐͲ»Í¬

4.2 ÏÂÃæÄÄЩָÁîÊÇ·Ç·¨µÄ£¿(¼ÙÉèOP1£¬OP2ÊÇÒѾ­ÓÃDB¶¨ÒåµÄ±äÁ¿)

(1) CMP 15, BX £»´í£¬Á¢¼´Êý²»ÄÜ×÷ΪĿµÄ²Ù×÷Êý (2) CMP OP1, 25

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)