王爽彙編第十章檢測點10 5分析 (整理)

2021-05-27 21:01:17 字數 626 閱讀 7117

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類似。接下...