΢»úÔ­ÀíϰÌâ´ð°¸1234ÕÂ

µÚ3Õ 8086CPUÖ¸Áîϵͳ

1. д³öÍê³ÉÏÂÁÐÒªÇóµÄ±äÁ¿¶¨ÒåÓï¾ä£º

£¨1£©ÔÚ±äÁ¿var1Öб£´æ6¸ö×Ö±äÁ¿£º4512H£¬4512£¬£­1£¬100/3£¬10H£¬65530£» £¨2£©ÔÚ±äÁ¿var2Öб£´æ×Ö·û´®£º¡¯BYTE¡¯, ¡¯word¡¯, ¡¯WORD¡¯£» £¨3£©ÔÚ»º³åÇøbuf1ÖÐÁô³ö100¸ö×ֽڵĴ洢¿Õ¼ä£»

£¨4£©ÔÚ»º³åÇøbuf2ÖУ¬±£´æ5¸ö×Ö½ÚµÄ55H£¬ÔÙ±£´æ10¸ö×Ö½ÚµÄ240£¬²¢½«ÕâÒ»¹ý³Ì

ÖØ¸´7´Î£»

£¨5£©ÔÚ±äÁ¿var3Öб£´æ»º³åÇøbuf1µÄ³¤¶È£»

£¨6£©ÔÚ±äÁ¿pointerÖб£´æ±äÁ¿var1ºÍ»º³åÇøbuf1µÄÆ«ÒÆµØÖ·¡£ ½â£ºvar1

var2 buf1 buf2 var3

DW DB DB DB DB

4512H,4512,-1,100/3,10H,65530 ¡¯BYTE¡¯,¡¯word¡¯,¡¯WORD¡¯ 100 DUP£¨?£©

7 DUP£¨5 DUP£¨55H£©,10 DUP£¨240£©£© LENGTH buf1

var1,buf1 £¨»òÕßpointer DW OFFSET var1£¬OFFSET buf1£©

pointer DW

2. Éè±äÁ¿var1µÄÂß¼­µØÖ·Îª0100£º0000£¬»­³öÏÂÁÐÓï¾ä¶¨ÒåµÄ±äÁ¿µÄ´æ´¢·ÖÅäͼ£º var1 DB 12£¬£­12£¬20/6£¬4 DUP£¨0£¬55H£© var2 DB ¡®Assemble¡¯

var3 DW ¡®AB¡¯, ¡®cd¡¯, ¡®E¡¯ var4 DW var2 var5 DD var2 ½â£º

£­ 8 £­

3. Ö¸ÁîÕýÎóÅжϣ¬¶ÔÕýÈ·Ö¸Áîд³öÔ´ºÍÄ¿µÄ²Ù×÷ÊýµÄѰַ·½Ê½£¬¶Ô´íÎóÖ¸ÁîÖ¸³öÔ­Òò£¨Éè

VAR1, VAR2Ϊ×Ö±äÁ¿, L1Ϊ±êºÅ£©£º £¨1£©MOV SI£¬100 £¨3£©MOV AX, [BX] £¨5£©MOV BP, AL £¨7£©MOV CS, AX £¨9£©MOV [BX][SI], 1 £¨11£©ADD AX, LENGTH VAR1 £¨13£©SUB [DI], 78H £¨15£©PUSH 100H £¨17£©XCHG AX, ES £¨19£©JMP L1+5 £¨21£©SHL BL, 2 £¨23£©MUL CX

£¨25£©ADC CS:[0100], AH ½â£º£¨1£©MOV SI,100

£¨2£©MOV BX£¬VAR1[SI] £¨4£©MOV AL, [DX] £¨6£©MOV VAR1, VAR2 £¨8£©MOV DS, 0100H £¨10£©MOV AX, VAR1+VAR2 £¨12£©OR BL, TYPE VAR2 £¨14£©MOVS VAR1, VAR2 £¨16£©POP CS £¨18£©MOV DS, CS £¨20£©DIV AX, 10 £¨22£©MOV AL, 15+23 £¨24£©XCHG CL, [SI] £¨26£©SBB VAR1£­5,154

ÕýÈ·¡£Ô´£ºÁ¢¼´ÊýѰַ£¬ Ä¿µÄ£º¼Ä´æÆ÷Ѱַ ÕýÈ·¡£Ô´£º¼Ä´æÆ÷Ïà¶ÔѰַ£¬ Ä¿µÄ£º¼Ä´æÆ÷Ѱַ ÕýÈ·¡£Ô´£º¼Ä´æÆ÷¼ä½ÓѰַ£¬Ä¿µÄ£º¼Ä´æÆ÷Ѱַ

´íÎ󡣼ĴæÆ÷¼ä½ÓѰַʱ£¬DX, AX, CX²»ÄÜ×÷µØÖ·¼Ä´æÆ÷ ´íÎó¡£²Ù×÷ÊýÀàÐͲ»Ò»ÖÂ

´íÎó¡£Á½´æ´¢µ¥ÔªÖ®¼ä²»ÄÜÓÃMOVÖ¸Áî´«ËÍÊý¾Ý

£­ 9 £­

£¨2£©MOV BX,VAR1[SI] £¨3£©MOV AX,[BX] £¨4£©MOV AL,[DX] £¨5£©MOV BP,AL

£¨6£©MOV VAR1,VAR2

£¨7£©MOV CS,AX ´íÎó¡£CS²»ÄÜΪĿµÄ²Ù×÷Êý

´íÎó¡£Ä¿µÄ²Ù×÷ÊýΪ¶Î¼Ä´æÆ÷ʱ£¬Ô´²Ù×÷Êý²»ÄÜΪÁ¢¼´Êý ´íÎó¡£Ö¸ÁîÀàÐͲ»¶¨¡£

´íÎó¡£MOVÖ¸ÁîÖв»ÄÜÍê³É¼Ó·¨ÔËËã

£¨8£©MOV DS,0100H £¨9£©MOV [BX][SI]£¬1

£¨10£©MOV AX,VAR1+VAR2

£¨11£©ADD AX,LENGTH VAR1 ÕýÈ·¡£Ô´£ºÁ¢¼´ÊýѰַ¡£Ä¿µÄ£º¼Ä´æÆ÷Ѱַ £¨12£©OR

BL,TYPE VAR2

ÕýÈ·¡£Ô´£ºÁ¢¼´ÊýѰַ¡£Ä¿µÄ£º¼Ä´æÆ÷Ѱַ ´íÎó¡£Ö¸ÁîÀàÐͲ»¶¨

£¨13£©SUB [DI],78H

£¨14£©MOVS VAR1,VAR2 ÕýÈ·¡£Ä¿µÄ¡¢Ô´¾ùΪÒþº¬Ñ°Ö·¡£²Ù×÷Êý½öÖ¸³ö²Ù×÷ÊýÀàÐÍ £¨15£©PUSH 100H £¨16£©POP

´íÎó¡£½«³£ÊýѹÈë¶ÑÕ»£¬ÒªÍ¨¹ý¼Ä´æÆ÷À´ÊµÏÖ

´íÎó¡£Ä¿µÄ²Ù×÷Êý²»ÄÜΪCS

CS

£¨17£©XCHG AX£¬ES £¨18£©MOV DS£¬CS £¨19£©JMP L1+5 £¨20£©DIV £¨21£©SHL

´íÎó¡£XCHGÖ¸ÁîµÄ²Ù×÷Êý²»ÄÜÊǶμĴæÆ÷ ´íÎó¡£MOVÖ¸Áî²»ÄܴӶμĴæÆ÷µ½¶Î¼Ä´æÆ÷ ÕýÈ·¡£¶ÎÄÚÖ±½Ó×ªÒÆ

´íÎó¡£Ö¸Áî¸ñʽ´íÎó¡£

´íÎó¡£ÒÆÎ»Ö¸ÁîµÄÒÆÎ»ÊýΪ1»òÕßCL

AX£¬10 BL£¬2

£¨22£©MOV AL£¬15+23 ÕýÈ·¡£Ô´:Á¢¼´ÊýѰַ£¬Ä¿µÄ:¼Ä´æÆ÷¡£±àÒëʱ¾Í´¦ÀíΪ38 £¨23£©MUL

CX

ÕýÈ·¡£Ô´£º¼Ä´æÆ÷Ѱַ£¬Ä¿µÄ£º¼Ä´æÆ÷Ѱַ

£¨24£©XCHG CL£¬[SI] ÕýÈ·¡£Ô´£º¼Ä´æÆ÷¼ä½ÓѰַ£¬Ä¿µÄ£º¼Ä´æÆ÷Ѱַ

£¨25£©ADC CS:[0100],AH ÕýÈ·¡£Ô´:¼Ä´æÆ÷Ѱַ,Ä¿µÄ: Ö±½ÓѰַ£¨Êý¾ÝÔÚ´úÂë¶ÎÖУ© £¨26£©SBB

VAR1-5,154 ÕýÈ·¡£Ô´£ºÁ¢¼´ÊýѰַ£¬Ä¿µÄ£ºÖ±½ÓѰַ¡£

4. ˵Ã÷ÏÂÁÐÖ¸Áî¶ÔµÄÇø±ð£º

£¨1£©MOV AX£¬VAR1 £¨2£©MOV AX£¬VAR2

Óë MOV AX£¬OFFSET VAR1 Óë LEA AX£¬VAR2

£¨3£©MOV AL£¬LENGTH VAR1 Óë MOV AL£¬SIZE VAR1 £¨4£©MOV AL£¬ES: [DI] CMP AL, [SI] Óë CMPSB £¨5£©SHR AL£¬1 £¨6£©SHR AL£¬1 £¨7£©ROL BX£¬1 ½â£º£¨1£©MOV

Óë SAR AL£¬1 Óë ROR AL£¬1 Óë RCL BX£¬1

AX£¬VAR1 °Ñ±äÁ¿VAR1¶ÔÓ¦µØÖ·µ¥ÔªÖеÄÒ»¸ö×ÖËÍÈëAX AX£¬OFFSET VAR1 °ÑVAR1µÄÓÐЧµØÖ·µÄÆ«ÒÆµØÖ·ËÍÈëAX

£­ 10 £­

MOV

£¨2£©MOV

AX£¬VAR2 °Ñ±äÁ¿VAR2¶ÔÓ¦µØÖ·µ¥ÔªÖеÄÒ»¸ö×ÖËÍÈëAX

LEA AX£¬VAR2 °ÑVAR2µÄÓÐЧµØÖ·µÄÆ«ÒÆµØÖ·ËÍÈëAX £¨3£©MOV AL£¬LENGTH VAR1 °Ñ±äÁ¿VAR1µÄ³¤¶ÈËÍÈëAL

MOV AL£¬SIZE VAR1 °Ñ±äÁ¿VAR1µÄ´óСËÍÈëAL £¨4£©MOV

AL£¬ES£º[DI]

°ÑÒÔESΪ¶ÎµØÖ·£¬DIÎªÆ«ÒÆµØÖ·µÄÒ»¸ö×Ö½ÚËÍÈëAL£¬

²¢ÓëÒÔSIÄÚÈÝÎªÆ«ÒÆµØÖ·µÄÒ»¸ö×Ö½Ú×÷±È½Ï£¬¸Ä±ä±êÖ¾¼Ä ´æÆ÷ÄÚÈÝ¡££¨Ï൱ÓÚ×÷ES£º£¨DI£©Ó루DS: £¨SI£©ÄÚÈݱȽϣ©

CMPSB

¶Ô×Ö·û´®ÖеÄÒ»×ֽڱȽϡ£Ñ°Ö··½Ê½Òþº¬¡£Ô´´®µÄµØÖ·ÓÉ DS:SIÖ¸¶¨£¬Ä¿µÄ´®µÄµØÖ·ÓÉES:DIÖ¸¶¨¡££¨Ï൱ÓÚ×÷ DS: £¨SI£©ÓëES£º£¨DI£©ÄÚÈݱȽϣ©

£¨5£©SHR AL£¬1 ALÂß¼­ÓÒÒÆ1룬×î¸ßÎ»ÒÆÈë0, ×îµÍÎ»ÒÆÈëCF¡£

SAR AL£¬1 ALËãÊõÓÒÒÆ1룬ÒÔ×î¸ßλÄÚÈÝÒÆÈ룬×îµÍÎ»ÒÆÈëCF, ÆäÓà¸÷λ

ÓÒÒÆÒ»Î»¡£

£¨6£©SHR AL£¬1 ALÂß¼­ÓÒÒÆ1룬×î¸ßÎ»ÒÆÈë0, ×îµÍÎ»ÒÆÈëCF¡£ ROR AL£¬1

ALµÄ¸÷λ¹¹³É»·ÐÎÒÆÎ»£¬ÓÒÒÆÒ»Î»£¬×îµÍλÄÚÈÝÍ¬Ê±ÒÆÈëµ½CFºÍ ×î¸ßλ¡£

£¨7£©ROL BX£¬1 BX¸÷λ¹¹³É»·ÐÎÒÆÎ»£¬×óÒÆÒ»Î»£¬×î¸ßλÄÚÈÝÍ¬Ê±ÒÆÈëµ½CFºÍ

×îµÍλ¡£

RCL BX£¬1 BXºÍCF¹¹³É»·ÐÎÒÆÎ»£¬×óÒÆÒ»Î»£¬CFÄÚÈÝÒÆÈëµ½×îµÍ룬×î ¸ßÎ»ÒÆÈëCF¡£

CMP AL£¬[SI]

5. д³öÏÂÁÐ×ªÒÆÖ¸ÁîµÄѰַ·½Ê½£¨ÉèL1Ϊ±êºÅ£¬VAR1Ϊ×ÖÐͱäÁ¿£¬DVAR1Ϊ˫×ÖÐͱäÁ¿£©£º £¨1£©JMP L1 £¨3£©JNZ L1 £¨5£©JG L1

£¨7£©JMP FAR PTR L1

£¨2£©JMP NEAR L1 £¨4£©JMP BX £¨6£©JMP VAR1[SI] £¨8£©JMP DVAR1

½â£º£¨1£©JMP L1 ¶ÎÄÚÖ±½ÓѰַ £¨2£©JMP NEAR PTR L1 ¶ÎÄÚÖ±½ÓѰַ £¨3£©JNZ

L1 ¶ÎÄÚÖ±½ÓѰַ

£¨4£©JMP BX

¶ÎÄÚ¼ä½ÓѰַ

¶ÎÄÚ¼ä½ÓѰַ

£¨5£©JG L1 ¶ÎÄÚÖ±½ÓѰַ £¨6£©JMP VAR1[SI]

£¨7£©JMP FAR PTR L1 ¶Î¼äÖ±½ÓѰַ £¨8£©JMP DVAR1 ¶Î¼ä¼ä½ÓѰַ

£­ 11 £­

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