µ±Ç°Î»ÖãºÊ×Ò³ > »ã±àÓïÑÔµÚ¶þ°æ¿Îºó´ð°¸
pop [6] pop [4] pop [2] pop [0]
ʵÑé2 ÓûúÆ÷Ö¸ÁîºÍ»ã±àÖ¸Áî±à³Ì 1.Ô¤±¸ÖªÊ¶£ºdebugµÄʹÓà ÂÔ
2.ʵÑéÈÎÎñ
(1) ʹÓÃdebug£¬½«ÉÏÃæµÄ³ÌÐò¶ÎдÈëÄڴ棬ÖðÌõÖ´ÐУ¬¸ù¾ÝÖ¸ÁîÖ´ÐкóµÄʵ¼ÊÔËÐÐÇé¿öÌî¿Õ¡£ mov ax,ffff mov ds,ax mov ax,2200 mov ss,ax mov sp,0100
mov ax,[0] ;ax=58ea add ax,[2] ;ax=5cca mov bx,[4] ;bx=30f0 add bx,[6] ;bx=6021
push ax ;sp=00fe;Ð޸ĵÄÄÚ´æµ¥ÔªµÄµØÖ·ÊÇ220fe£¬ÄÚÈÝΪ5cca push bx ;sp=00fc;Ð޸ĵÄÄÚ´æµ¥ÔªµÄµØÖ·ÊÇ220fc£¬ÄÚÈÝΪ6021 pop ax ;sp=00fe;ax=6021 pop bx ;sp=0100;bx=5cca
push [4] ;sp=00fe;Ð޸ĵÄÄÚ´æµ¥ÔªµÄµØÖ·ÊÇ220fe£¬ÄÚÈÝΪ30f0 push [6] ;sp=00fc;Ð޸ĵÄÄÚ´æµ¥ÔªµÄµØÖ·ÊÇ220fc£¬ÄÚÈÝΪ2f31 ×¢£ºÄÚ´æÖеÄÊý¾Ý»áÒò»úÆ÷¡¢»·¾³¶øÒì
(2) ×Ðϸ¹Û²ìͼ3.19ÖеÄʵÑé¹ý³Ì£¬È»ºó·ÖÎö£ºÎªÊ²Ã´2000:0¡«2000:fÖеÄÄÚÈݻᷢÉú¸Ä±ä£¿
½â£ºtÃüÁîΪµ¥²½Öжϣ¬cpu»á±£»¤ÏÖ³¡£¬¼´Ë³Ðò°Ñ±êÖ¾¼Ä´æÆ÷¡¢cs¡¢ipÈëÕ»£¬´ËÌâÊǹØÓÚºóÃæÕ½ڵÄÖжÏÎÊÌâ¡£ µÚ4Õ µÚÒ»¸ö³ÌÐò
ʵÑé3 ±à³Ì¡¢±àÒë¡¢Á¬½Ó¡¢¸ú×Ù
(1) ½«ÏÂÃæµÄ³ÌÐò±£´æÎªt1.asm,½«ÆäÉú³É¿ÉÖ´ÐÐÎļþti.exe¡£ assume cs:codesg codesg segment mov ax,2000h mov ss,ax mov sp,0
add sp,10 pop ax pop bx push ax push bx pop ax pop bx
mov ax,4c00h int 21h
codesg ends end
¡¾ÆªÈý£º»ã±àÓïÑÔ(Íõˬ)_µÚ¶þ°æ_¿ÎºóÌâÈ«_´ð°¸16¡¿
t>mov ds,ax push [0] push [2] push [4] push [6] push [8] push [a] push [c] push [e] ¼ì²âµã3.2
£¨2£©²¹È«ÏÂÃæµÄ³ÌÐò£¬Ê¹Æä¿ÉÒÔ½«10000h-1000fhÖеÄ8¸ö×Ö£¬ÄæÐò¿½±´µ½20000h-2000fhÖС£ mov ax,2000h
mov ds,ax pop [e] pop [c] pop [a] pop [8] pop [6] pop [4] pop [2] pop [0]
ʵÑé2 ÓûúÆ÷Ö¸ÁîºÍ»ã±àÖ¸Áî±à³Ì
£¨1£©Ê¹ÓÃdebug£¬½«ÉÏÃæµÄ³ÌÐò¶ÎдÈëÄڴ棬ÖðÌõÖ´ÐУ¬¸ù¾ÝÖ¸ÁîÖ´ÐкóµÄʵ¼ÊÔËÐÐÇé¿öÌî¿Õ¡£ mov ax,ffff mov ds,ax mov ax,2200
mov ss,ax
¹²·ÖÏí92ƪÏà¹ØÎĵµ