實驗二 用機器指令和匯編指令編程
阿新 • • 發佈:2018-11-18
發生 分析 src 不用 匯編 執行 我們 觀察 字節
四、實驗結論
實驗任務2
1)使用Debug,將下面程序段寫入內存,逐條執行,根據指令執行後的實際運算情況填空。
在使用 a 命令輸入指令調試前,使用 e 命令將內存單元 0021:0 ~0021:7 連續 8 個字節數據修改為 30H, 31H, 32H, 33H,34H,35H,36H,37H
將 P74 實驗任務(1)中第 1 行的 mov ax, ffff → 改為 mov ax, 0021
使用R命令修改CS:IP的地址為0021:0
輸入需要執行的命令
由截圖可知,在執行mov ss,ax的時候,同步執行了下一步mov sp,0100.說明這兩步是同時執行的
上圖是指令進行後的實際運行情況的填空。
2)仔細觀察圖3.19中的實驗過程,然後分析:為什麽2000:0~2000:f中的內容會發生改變
前三行的命令是定義棧地址,棧頂的地址為2000:0010。
在執行push ax的時候,ax的值推入棧中,是值發生改變
五、總結與體會
通過這次實驗,增加了我對棧的了解,例如ss*16+sp=棧頂的物理地址,棧頂的段地址存放在ss中,偏移地址存放在sp中。同時,8086CPU的入棧和出棧操作都是以字為單位進行的。
通過棧,我們可以不用改變cs:ip的值,就能使用t命令進行一些指令操作,可以說棧的使用方便了我們。
實驗二 用機器指令和匯編指令編程