實驗1 8086匯編指令編碼和調試


四、實驗結論

2.實驗任務2

(1)使用d命令查看生產時期的截圖

 

(2)使用e命令修改生產日期所在內存單元以及修改后再次使用d命令查看的截圖

 

(3)結論:不能修改。使用e命令修改生產時期所在的內存單元的操作是無效的,因為這等於改寫只讀存儲器的內容。

 

3.實驗任務3

(1)使用e命令修改內存單元的命令:

 

e b800:0 03 04 03 04 03 04 03 04 03 04

 

效果截圖:

 

(2)使用f命令批量填充內存單元的命令

 

f b800:0f00 0f9f 03 04

 

效果截圖:

 

(3)修改內存單元和數據的命令如下:

 

e b810:a 04 03 04 03 04 03

 

效果截圖:

 

4.實驗任務4

(1)填空

 

 1 -a
 2 mov ax, 20
 3 mov ds, ax
 4 mov ss, ax
 5 mov sp, 30
 6 push [0] ; 執行后,寄存器(sp) = 002E
 7 push [2] ; 執行后,寄存器(sp) = 002C
 8 push [4] ; 執行后,寄存器(sp) = 002A
 9 push [6] ; 執行后,寄存器(sp) = 0028
10 pop [6] ; 執行后,寄存器(sp) = 002A
11 pop [4] ; 執行后,寄存器(sp) = 002C
12 pop [2] ; 執行后,寄存器(sp) = 002E
13 pop [0] ; 執行后,寄存器(sp) = 0030

 

(2)問題1:

棧頂的邏輯地址:0020:0030

棧頂的物理地址:0020*16+0030=00230h

 

問題2:實驗截圖如下:

 

問題3:沒有變化。

實驗截圖如下:

 

問題4:按字來看,數據順序與原來相反。

實驗截圖如下:

 

5.實驗任務5

(1)問題1:使用t命令單步執行mov ss, ax時,單步執行完這一條指令沒有暫停。因為Debug的T命令在執行修改寄存器SS的指令時,下一條指令也緊接着被執行。所以指令mov sp, 30緊接着上一條指令被執行了。

 

(2)問題2:黃色下划線表示的是CS:IP,在數據進棧的同時,存儲的位置也發生了改變。

 

6.實驗任務6

(1)程序源碼:

 

 1 assume cs:code
 2 
 3 code segment
 4 start:
 5         mov cx, 10
 6         mov dl, '0'
 7 s:      mov ah, 2
 8         int 21h
 9         add dl, 1
10         loop s
11 
12         mov ah, 4ch
13         int 21h
14 code ends
15 end start

 

(2)使用masm、link對程序匯編鏈接過程,以及運行可執行程序task5.exe的運行結果截圖:

 

(3)在debug中查看task5.exe的程序段前綴PSP的截圖:

前兩個字節是CD 20 。

 

7.實驗任務7

(1)補全后的完整源碼:

 

 1 assume cs:code
 2 code segment
 3         mov ax, cs
 4         mov ds, ax
 5         mov ax, 0020h
 6         mov es, ax
 7         mov bx, 0
 8         mov cx, 17h
 9 s:      mov al, [bx]
10         mov es:[bx], al
11         inc bx
12         loop s
13 
14         mov ax, 4c00h
15         int 21h
16 code ends
17 end

 

第一個空填cs

依據:CS:IP指向要執行的指令(即本題中要復制的代碼)。

第二個空填17h

依據:task7.asm中line3-line12的代碼占據了17h個單元,一開始寄存器CX中存儲的是循環的次數。

 

(2)使用g命令運行到指定點和使用u命令反匯編0:200到復制代碼長度這一段內存空間的截圖:

 

五、實驗總結

收獲:

向 ROM(只讀存儲器)中寫入數據的操作是無效的。

Debug的T命令在執行修改寄存器SS的指令時,下一條指令也緊接着被執行。

 

尚存的問題:

實驗任務5中的問題2,對於存儲CS:IP的位置移動的原因尚未清楚。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM