1.
先看源程式:
assume cs:code
stack segment
dw 8 dup (0)
stack ends
code segment
start :mov ax,stack
mov ss,ax
mov sp,16
mov ds,ax
mov ax,0
call word ptr ds:[0eh]
inc ax
inc ax
inc ax
code ends
end start
分析:
其實,這題 它的 棧段位址ss 和 資料段位址ds 他們的值都是一樣的,說白了都在同一段內
當執行到 call word ptr ds:[0eh]的時候,首先是將 inc ax的ip位址0011入棧,那麼此時的(sp)=(sp)-2也就是【0eh】,此時【0eh】處得值也就是inc ax 的ip位址0011,所以執行完call word ptr ds:[0eh]以後直接轉移到下面位址處繼續執行。
2.10.5(2)的原理與這個是一樣的~~只是多壓入了cs~
王爽組合語言筆記 第十章檢測點10 5 2
問題 下面的 執行後,ax和bx中的數值為多少?assume cs code data segment dw 8 dup 0 data ends code segment start mov ax,data mov ss,ax mov sp,16 mov word ptr ss 0 offset s...
王爽 組合語言 第十章檢測題分析
第10章彙編測試題目 下列哪條指令不能夠使cs ip指向當前記憶體段範圍內以s為標號的 段 4 1 jmp near ptr s 2 jmp far ptr s 3 call near ptr s 4 call word ptr s 下面指令執行後,ax中的數值為多少 2 記憶體位址 機器碼 彙編指...
彙編學習筆記 第十章 CALL和RET指令
call和ret指令都是轉移指令,它們都修改cs和ip。經常被共同用於實現子程式的設計。這一章,我們講解call和ret指令的原理 retf指令用棧中的資料,修改cs和ip的內容,從而實現遠轉移 cpu執行call指令時,進行兩步操作 call指令不能實現短轉移,除此之外,call與jmp類似。接下...