΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ֪ʶµã×ܽá(ÖØµã,ϰÌâ,)

΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ

µÚÈýÕ 8086Ö¸Áîϵͳ

˵Ã÷£º8086Ö¸ÁîϵͳÕâÕÂÎªÖØµãÕ½ڣ¬¶ÔÏÂÃæÁгöµÄÖ¸Áî¶¼ÒªÇóÕÆÎÕ¡£

µÚÒ»½Ú 8086Ѱַ·½Ê½

Ò»¡¢Êý¾ÝѰַ·½Ê½£¨Öصã?£© 1¡¢Á¢¼´Ñ°Ö·

²Ù×÷Êý(Ϊһ³£Êý)Ö±½ÓÓÉÖ¸Áî¸ø³ö (´Ë²Ù×÷Êý³ÆÎªÁ¢¼´Êý) Á¢¼´Ñ°Ö·Ö»ÄÜÓÃÓÚÔ´²Ù×÷Êý Àý£º

MOV AX, 1C8FH MOV BYTE PTR[2A00H], 8FH ´íÎóÀý£º

¡Á MOV 2A00H,AX ; ´íÎó£¡ Ö¸Áî²Ù×÷Àý£ºMOV AX£¬3102H; AX?3102H

Ö´Ðкó£¬(AH) = 31H£¬(AL) = 02H

2¡¢¼Ä´æÆ÷Ѱַ

£¨1£©²Ù×÷Êý·ÅÔÚij¸ö¼Ä´æÆ÷ÖÐ

£¨2£©Ô´²Ù×÷ÊýÓëÄ¿µÄ²Ù×÷Êý×Ö³¤ÒªÏàͬ £¨3£©¼Ä´æÆ÷ѰַÓë¶ÎµØÖ·ÎÞ¹Ø Àý£º

MOV AX, BX

MOV [3F00H], AX MOV CL, AL ´íÎóÀý£º

¡Á MOV AX,BL ; ×Ö³¤²»Í¬

¡Á MOV ES:AX,DX ; ¼Ä´æÆ÷Óë¶ÎÎÞ¹Ø 3¡¢Ö±½ÓѰַ

£¨1£©Ö¸ÁîÖÐÖ±½Ó¸ø³ö²Ù×÷ÊýµÄ16Î»Æ«ÒÆµØÖ· Æ«ÒÆµØÖ·Ò²³ÆÎªÓÐЧµØÖ·(EA, Effective Address)

£¨2£©Ä¬ÈϵĶμĴæÆ÷ΪDS£¬µ«Ò²¿ÉÒÔÏÔʽµØÖ¸¶¨ÆäËû¶Î¼Ä´æÆ÷¡ª¡ª³ÆÎª¶Î³¬Ô½Ç°×º £¨3£©Æ«ÒƵØÖ·Ò²¿ÉÓ÷ûºÅµØÖ·À´±íʾ£¬ÈçADDR¡¢VAR Àý£º

MOV AX ,[2A00H] MOV DX ,ES:[2A00H] MOV SI,TABLE_PTR

4¡¢¼ä½ÓѰַ

? ²Ù×÷ÊýµÄÆ«ÒÆµØÖ·(ÓÐЧµØÖ·EA)·ÅÔڼĴæÆ÷ÖÐ ? Ö»ÓÐSI¡¢DI¡¢BXºÍBP¿É×÷¼äÖ·¼Ä´æÆ÷

5 / 56

΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ

? Àý£º MOV AX,[BX]

MOV CL,CS:[DI]

´íÎóÀý £º¡Á MOV AX, [DX]

¡Á MOV CL, [AX]

5¡¢¼Ä´æÆ÷Ïà¶ÔѰַ

?EA=¼äÖ·¼Ä´æÆ÷µÄÄÚÈݼÓÉÏÒ»¸ö8/16λµÄÎ»ÒÆÁ¿ ? Àý£º MOV AX, [BX+8] MOV CX, TABLE[SI]

MOV AX, [BP]; ĬÈ϶μĴæÆ÷ΪSS ? Ö¸Áî²Ù×÷Àý£ºMOV AX£¬DATA[BX]

Èô(DS)=6000H, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=55H

ÔòÎïÀíµØÖ· = 60000H + 1000H + 2A00H = 63A00H

Ö¸ÁîÖ´Ðк󣺣¨AX£©=5566H

6¡¢»ùÖ·±äַѰַ

? Èô²Ù×÷ÊýµÄÆ«ÒÆµØÖ·£º

ÓÉ»ùÖ·¼Ä´æÆ÷(BX»òBP)¸ø³ö ¡ª¡ª »ùַѰַ·½Ê½ ÓɱäÖ·¼Ä´æÆ÷(SI»òDI)¸ø³ö ¡ª¡ª ±äַѰַ·½Ê½

ÓÉÒ»¸ö»ùÖ·¼Ä´æÆ÷µÄÄÚÈݺÍÒ»¸ö±äÖ·¼Ä´æÆ÷µÄÄÚÈÝÏà¼Ó¶øÐγɲÙ×÷ÊýµÄÆ«ÒÆµØÖ·£¬³ÆÎª»ùÖ·-±äַѰַ¡£

EA=£¨BX£©+£¨SI£©»ò£¨DI£©£» EA=£¨BP£©+£¨SI£©»ò£¨DI£©

ͬһ×éÄڵļĴæÆ÷²»ÄÜͬʱ³öÏÖ¡£

×¢Ò⣺³ýÁËÓжοçԽǰ׺µÄÇé¿öÍ⣬µ±»ùÖ·¼Ä´æÆ÷ΪBXʱ£¬²Ù×÷ÊýÓ¦¸Ã´æ·ÅÔÚÊý¾Ý¶ÎDSÖУ¬µ±»ùÖ·¼Ä´æÆ÷ΪBPʱ£¬²Ù×÷ÊýÓ¦·ÅÔÚ¶ÑÕ»¶ÎSSÖС£Àý£º MOV AX, [BX] [SI] MOV AX, [BX+SI]

MOV AX, DS: [BP] [DI] ´íÎóÀý£º

¡Á MOV AX, [BX] [BP] ¡Á MOV AX, [DI] [SI]

Ö¸Áî²Ù×÷Àý£ºMOV AX£¬[BX][SI]

¼Ù¶¨£º(DS)=8000H, (BX)=2000H, SI=1000H ÔòÎïÀíµØÖ· = 80000H + 2000H + 1000H = 83000H Ö¸ÁîÖ´Ðкó: (AL)=[83000H]

(AH)=[83001H]

7¡¢Ïà¶Ô»ùÖ·±äַѰַ

? ÔÚ»ùÖ·-±äַѰַµÄ»ù´¡ÉÏÔÙ¼ÓÉÏÒ»¸öÏà¶ÔÎ»ÒÆÁ¿

EA=£¨BX£©+£¨SI£©»ò£¨DI£©+8λ»ò16Î»Î»ÒÆÁ¿£»

6 / 56

΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ

EA=£¨BP£©+£¨SI£©»ò£¨DI£©+8λ»ò16Î»Î»ÒÆÁ¿

Ö¸Áî²Ù×÷Àý£ºMOV AX£¬DATA[DI][BX]

Èô(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H ÔòÖ¸ÁîÖ´Ðкó(AH)=[83021H], (AL)=[83020H]

¼Ä´æÆ÷¼ä½Ó¡¢¼Ä´æÆ÷Ïà¶Ô¡¢»ùÖ·±äÖ·¡¢Ïà¶Ô»ùÖ·±äÖ·ËÄÖÖѰַ·½Ê½µÄ±È½Ï£º Ѱַ·½Ê½ Ö¸Áî²Ù×÷ÊýÐÎʽ

? ¼Ä´æÆ÷¼ä½Ó Ö»ÓÐÒ»¸ö¼Ä´æÆ÷£¨BX/BP/SI/DIÖ®Ò»£© ? ¼Ä´æÆ÷Ïà¶Ô Ò»¸ö¼Ä´æÆ÷¼ÓÉÏÎ»ÒÆÁ¿ ? »ùÖ·¡ª±äÖ· Á½¸ö²»Í¬Àà±ðµÄ¼Ä´æÆ÷

? Ïà¶Ô»ùÖ·-±äÖ· Á½¸ö²»Í¬Àà±ðµÄ¼Ä´æÆ÷¼ÓÉÏÎ»ÒÆÁ¿

¶þ¡¢µØÖ·Ñ°Ö··½Ê½£¨Á˽âÓÐ4À࣬ÄÜÅжϣ© ¼òÒªÅжÏÒÀ¾Ý£¨Ö¸ÁîÖмäµÄµ¥´Ê£©£º ¶ÎÄÚÖ±½Ó short,near ¶ÎÄÚ¼ä½Ó word ¶Î¼äÖ±½Ó far ¶Î¼ä¼ä½Ó dword

µÚ¶þ½Ú 8086Ö¸Áîϵͳ

Ò»¡¢Êý¾Ý´«ËÍÖ¸Áî£¨ÖØµã?£©

1¡¢Í¨Óô«ËÍÖ¸Áî

(1) MOV dest£¬src£» dest¡ûsrc

´«Ë͵ÄÊÇ×Ö½Ú»¹ÊÇ×ÖÈ¡¾öÓÚÖ¸ÁîÖÐÉæ¼°µÄ¼Ä´æÆ÷ÊÇ8λ»¹ÊÇ16λ¡£ ¾ßÌåÀ´Ëµ¿ÉʵÏÖ£º

¢Ù MOV mem/reg1£¬mem/reg2

Ö¸ÁîÖÐÁ½²Ù×÷ÊýÖÐÖÁÉÙÓÐÒ»¸öΪ¼Ä´æÆ÷ ¢Ú MOV reg£¬data ;Á¢¼´ÊýËͼĴæÆ÷ ¢Û MOV mem£¬data ;Á¢¼´ÊýËÍ´æ´¢µ¥Ôª ¢Ü MOV acc£¬mem ;´æ´¢µ¥ÔªËÍÀÛ¼ÓÆ÷ ¢Ý MOV mem£¬acc ;ÀÛ¼ÓÆ÷ËÍ´æ´¢µ¥Ôª

¢Þ MOV segreg£¬mem/reg ;´æ´¢µ¥Ôª/¼Ä´æÆ÷ËͶμĴæÆ÷ ¢ß MOV mem/reg£¬segreg ;¶Î¼Ä´æÆ÷ËÍ´æ´¢µ¥Ôª/¼Ä´æÆ÷

MOVÖ¸ÁîµÄʹÓùæÔò ¢ÙIP²»ÄÜ×÷Ä¿µÄ¼Ä´æÆ÷ ¢Ú²»ÔÊÐímem¡ûmem ¢Û²»ÔÊÐísegreg¡ûsegreg

¢ÜÁ¢¼´Êý²»ÔÊÐí×÷ΪĿµÄ²Ù×÷Êý ¢Ý²»ÔÊÐísegreg¡ûÁ¢¼´Êý

¢ÞÔ´²Ù×÷ÊýÓëÄ¿µÄ²Ù×÷ÊýÀàÐÍÒªÒ»ÖÂ

¢ßµ±Ô´²Ù×÷ÊýΪµ¥×Ö½ÚµÄÁ¢¼´Êý£¬¶øÄ¿µÄ²Ù×÷ÊýΪ¼äÖ·¡¢±äÖ·¡¢»ùÖ·+±äÖ·µÄÄÚ´æÊýʱ£¬±Ø

7 / 56

΢»úÔ­ÀíÓë½Ó¿Ú¼¼Êõ

ÐëÓÃPTR˵Ã÷Êý¾ÝÀàÐÍ¡£È磺MOV [BX]£¬12H ÊÇ´íÎóµÄ¡£

£¨2£©¡¢¶ÑÕ»Ö¸Áî ʲôÊǶÑÕ»£¿

°´¡°ºó½øÏȳö(LIFO)¡±·½Ê½¹¤×÷µÄ´æ´¢ÇøÓò¡£¶ÑÕ»ÒÔ×ÖΪµ¥Î»½øÐÐѹÈ뵯³ö²Ù×÷¡£

¹æ¶¨ÓÉSSָʾ¶ÑÕ»¶ÎµÄ¶Î»ùÖ·£¬¶ÑÕ»Ö¸ÕëSPʼÖÕÖ¸Ïò¶ÑÕ»µÄ¶¥²¿£¬SPµÄ³õÖµ¹æ¶¨ÁËËùÓöÑÕ»ÇøµÄ´óС¡£¶ÑÕ»µÄ×î¸ßµØÖ·½ÐÕ»µ×¡£

¢Ù ѹջָÁîPUSH

PUSH src ; srcΪ16λ²Ù×÷Êý

Àý£ºPUSH AX £»½«AXÄÚÈÝѹջ Ö´ÐвÙ×÷£º£¨SP£©-1¡û¸ß×Ö½ÚAH

£¨SP£©-2¡ûµÍ×Ö½ÚAL (SP)¡û£¨SP£©- 2

×¢Òâ½øÕ»·½ÏòÊǸߵØÖ·ÏòµÍµØÖ··¢Õ¹¡£`

¢Ú µ¯³öÖ¸ÁîPOP POP dest

Àý£ºPOP BX £»½«Õ»¶¥ÄÚÈݵ¯ÖÁBX

Ö´ÐвÙ×÷£º£¨BL£©¡û£¨SP£© £¨BH£©¡û£¨SP£©+1 £¨SP£©¡û£¨SP£©+2

¶ÑÕ»Ö¸ÁîÔÚʹÓÃʱÐè×¢ÒâµÄ¼¸µã£º ¢Ù ¶ÑÕ»²Ù×÷×ÜÊǰ´×Ö½øÐÐ

¢Ú ²»ÄÜ´ÓÕ»¶¥µ¯³öÒ»¸ö×Ö¸øCS

¢Û ¶ÑÕ»Ö¸ÕëΪSS:SP£¬SPÓÀÔ¶Ö¸ÏòÕ»¶¥ ¢ÜSP×Ô¶¯½øÐÐÔö¼õÁ¿£¨-2£¬+2£©

£¨3£©¡¢½»»»Ö¸ÁîXCHG

¸ñʽ£ºXCHG reg£¬mem/reg ¹¦ÄÜ£º½»»»Á½²Ù×÷ÊýµÄÄÚÈÝ¡£

ÒªÇó£ºÁ½²Ù×÷ÊýÖбØÐëÓÐÒ»¸öÔڼĴæÆ÷ÖУ» ²Ù×÷Êý²»ÄÜΪ¶Î¼Ä´æÆ÷ºÍÁ¢¼´Êý£» Ô´ºÍÄ¿µØ²Ù×÷ÊýÀàÐÍÒªÒ»Ö¡£ ¾ÙÀý£º XCHG AX£¬BX

XCHG [2000]£¬CL

£¨4£©²é±íÖ¸ÁîXLAT

Ö´ÐеIJÙ×÷£ºAL¡û[(BX)+(AL)] Óֽвé±íת»»Ö¸ÁËü¿É¸ù¾Ý±íÏîÐòºÅ²é³ö±íÖжÔÓ¦´úÂëµÄÄÚÈÝ¡£Ö´ÐÐʱÏȽ«±íµÄÊ×µØÖ·

8 / 56

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