µÚÈýÕ IMB PC»úµÄÖ¸ÁîϵͳºÍѰַ·½Ê½ ÏÂÔØ±¾ÎÄ

£¨£¨SP£©+1£¬£¨SP£©£©¡û£¨SRC£©

PUSH Ö¸ÁîËÄÖÖ¸ñʽ£º

PUSH reg Àý£º PUSH BX

PUSH mem Àý£º PUSH [BX] PUSH segreg Àý£º PUSH CS

PUSH data

data ÊÇÁ¢¼´Êý£¬ÔÚ8086/8088 Öв»ÔÊÐí¡£

£¨2£©POP³öÕ»Ö¸Áî ¸ñʽ£ºPOP DST

²Ù×÷£º£¨DST£©¡û£¨£¨SP£©+1£¬£¨SP£©£©

£¨SP£©¡û£¨SP£©+2

POP Ö¸ÁîÔÊÐíµÄ¸ñʽ£º

POP reg Àý £º POP DX POP mem Àý£º POP VALUE POP segreg segreg²»ÄÜÓà CS Àý£º POP DS ¡ª¡ª ÕýÈ·

POP CS ¡ª¡ª ´íÎó

×¢Ò⣺

£¨1£©¶ÑÕ»µÄ´æÈ¡±ØÐëÒÔ×ÖΪµ¥Î»£¬²Ù×÷ÊýSRC¡¢DST±ØÐëÊÇ×Ö¡¢Ë«×Ö»òËÄ×Ö£¬¿ÉÒÔÓø÷ÖÖѰַ·½Ê½£¬8086/8088Öв»ÄÜÓÃÁ¢¼´Êý¡£

25

£¨2£©PUSHºÍPOP²Ù×÷²»Ó°Ïì±ê־λ¡£

Àý3.29 PUSH AX

ÈôÖ¸ÁîÖ´ÐÐǰ£¨SS£©= 3000H

£¨SP£©= 100H £¨AX£©= 2107H

Ö¸ÁîÖ´ÐÐÇé¿öÈçͼ3.10Ëùʾ¡£ ¶ÑÕ»¶Î ¶ÑÕ»¶Î

µÍµØÖ·

£¨SS£© £¨SS£© 07H £¨SP£© 21H ½øÕ»·½Ïò £¨SP£© ¸ßµØÖ·

Ö´Ðкó Ö´ÐÐǰ

ͼ3.10 PUSH AXÖ´ÐÐÇé¿ö

¿É¼û£ºÖ¸ÁîÖ´Ðкó£¬AXµÄ¸ß×Ö½Ú´æÈë¶ÑÕ»µÄ¸ßµØÖ·ÖУ¬µÍ×Ö½Ú´æÈëµÍµØÖ·ÖУ¬SSÖµ²»±ä£¬SP

26

Öµ¼õ2¡£

´Ëʱ£¨SP£©= 100H ¨C2 = 0FEH£¬ Ö¸ÏòÕ»¶¥ÔªËØ07H¡£

Àý3.30 POP AX

ÈôÖ¸ÁîÖ´ÐÐǰ£¨SS£©= 3000H£¬£¨SP£©= 0FEH£¬AXֵδ֪¡£

Ö¸ÁîÖ´Ðк󣬽«Õ»¶¥ÔªËØ07HËÍÈëAL£¬½«Õ»¶¥µØÖ·¼Ó1µ¥ÔªÄÚÈÝËÍÈëAH£¬

Ôò£¨AX£©= 2107H£¬SSÖµ²»±ä£¬SPÖµ¼Ó2£¬ ´Ëʱ£¨SP£©= 0FEH + 2 = 100H

Ö¸ÁîÖ´ÐÐÇé¿öÈçͼ3.11Ëùʾ¡£

27

£¨SS£© £¨SS£© µÍµØÖ·

£¨SP£© 07H 21H Ö´ÐÐǰ

£¨SP£© 07H 21H Ö´Ðкó

¸ßµØÖ· ³öÕ»·½Ïò

ͼ3.11 POP AXÖ´ÐÐÇé¿ö

¶ÑÕ»ÔÚ»ã±àÓïÑÔ³ÌÐòÉè¼ÆÖÐÆð×ÅÖØÒªµÄ×÷Óã¬Ëü¿ÉÒÔ±£´æ¡¢»Ö¸´¼Ä´æÆ÷ÖеÄÄÚÈÝ£»ÔÚ×Ó³ÌÐòºÍÖжϳÌÐòÖУ¬ÓöÑÕ»±£´æ·µ»ØµØÖ·£¬±£»¤ºÍ»Ö¸´CPU¹¤×÷¼Ä´æÆ÷ÄÚÈÝ£¬ÐÎʽÈ磺

PUSH AX £»±£»¤AX¡¢BXÄÚÈÝ PUSH BX

£»Öмä³ÌÐòÓõ½AX¡¢BX POP BX £»»Ö¸´AX¡¢BXÔ­À´ÄÚÈÝ POP AX

3¡¢½»»»Ö¸Áî XCHG

¸ñʽ£ºXCHG OPR1£¬OPR2 ²Ù×÷£º£¨ORP1£©?£¨OPR2£©

¸ÃÖ¸Áî½»»»¶þ¸ö²Ù×÷ÊýµÄÄÚÈÝ£¬¶þ¸ö²Ù×÷ÊýÖУ¬±ØÐëÓÐÒ»¸öÔڼĴæÆ÷ÖУ¬²»ÔÊÐíʹÓöμĴæÆ÷ºÍÁ¢¼´Êý¡£

Àý3.34 XCHG BX£¬[BP+SI] Ö¸ÁîÖ´ÐÐǰ£º £¨BX£©= 6F30H£¬£¨BP£©= 0200H£¬ £¨SI£©= 0046H£¬£¨SS£©= 2F00H£¬ ×Ö£¨2F246H£©= 4154H

28