1. 程式人生 > 其它 >實驗一 8086 彙編指令編碼和除錯

實驗一 8086 彙編指令編碼和除錯

實驗二

1. 給出使用d命令檢視生產時期的截圖

給出使用e命令修改生產日期所在記憶體單元的截圖,以及,修改後,再次使用d命令檢視的截圖

結論:日期不變,ROM只讀,無法對資料做出改變。

實驗三

1. 在debug中使用e命令修改記憶體單元的命令,及,效果截圖

2. 給出在debug中使用f命令批量填充記憶體單元的命令,以及效果截圖

3. 嘗試修改資料後的效果截圖

實驗四

填空

002E 002C 002A 0028 002A 002C 002E 0030

1.

邏輯地址為20:30 實體地址為0230H

2. 單步除錯到彙編指令 push [6] 執行結束, pop [6] 執行之前,使用 d 20:20 2f 檢視此時棧空間資料,給出實驗截圖

3. 彙編指令 pop [0] 執行結束後, pop [0] 指令執行結束後,使用d命令 d 20:0 7 檢視此時資料空間內的資料是否有變化。給出實驗截圖。

4. 如果把最後四條指令改成截圖中的順序, pop [6] 指令執行結束後,使用d命令 d 20:0 7 檢視此時資料空間內的資料是否有變化。給出實驗截圖。

實驗五

1.mov sp,30 緊接著被執行了,並非只執行了一步

2.該單元記憶體儲cs,ip的地址

實驗六

assume cs:code

code segment

start:

mov cx, 10

mov dl, '0'

s:

mov ah, 2

int 21h

add dl,1

loop s

mov ah,4ch

int 21h

code ends

end start

給出使用masm、link對程式彙編連結過程截圖,以及,執行可執行程式task5.exe的執行結果截圖

在debug中,使用d命令,檢視task5.exe的程式段字首,觀察這256個位元組的內容,驗證前兩個位元組是否是CD 20

前兩個位元組確實是CD 20

實驗七

assume cs:code

code segment

mov ax, ds

mov ds, ax

mov ax, 0020h

mov es, ax

mov bx, 0

mov cx, 17h

s: mov al, [bx]

mov es:[bx], al

inc bx

loop s

mov ax, 4c00h

int 21h

code ends

end

第一個空 mov ax,ds 即將偽段地址放入ax中,mov ds,ax將段地址裝入段暫存器

第二個空 迴圈次數計數器,迴圈指令的下一地址為17h。