實驗一 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。