別再糾結執行緒池大小了,沒有固定公式的!終於有人說清楚了。。
實驗任務2
1.使用d命令檢視生產時期的截圖
2.使用e命令修改生產時期所在的記憶體單元,修改後再次使用d命令檢視截圖
結論:生產時期所在的記憶體單元並沒有被改變,即e命令不能修改該記憶體單元內容。因為這段記憶體只讀,不能修改。
實驗任務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.嘗試修改記憶體單元或資料後的效果截圖
修改後使用d命令檢視時要指定起始位置。
實驗任務4
填空:2E,2C,2A,28,2A,2C,2E,30
1.指令mov ss,ax和mov sp,30執行後,棧頂邏輯地址和實體地址分別是?
答:邏輯地址是20:30,實體地址是00230H
2.單步除錯到push [6]執行結束,pop[6]執行之前,使用d 20:20 2f檢視棧空間資料。
3.pop[0]執行結束後,使用d 20:0 7檢視資料空間內的資料是否有變化。
4.pop[6]執行結束後,使用d 20:0 7檢視資料空間內的資料是否有變化。
實驗任務5
1.指令mov sp,30是什麼時候執行的?
答:t命令在執行修改暫存器ss的指令時,下一條指令也跟著執行。mov sp,30在下一次使用t命令時執行。
2.觀察單步除錯時,棧空間00220H~0022fH記憶體單元值的變化。
0022AH~0022DH是記憶體空間。
實驗任務6:
1.程式原始碼
assume cd: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
2.給出使用masm,link對程式彙編連線的截圖,以及執行可執行程式task6.exe的執行結果截圖
3.在debug中檢視task6.exe的程式段字首PSP的截圖
實驗任務7
1.給出補全的程式碼。
assume cd:code code segment start:mov ax,cs mov ds,ax mov ax,0020h mov es,ax mov bx,0 mov cx,0017h s:mov al,[bx] mov es:[bx],al inc bx loop s mov ax,4c00h int 21h code ends end start
因為複製line3~line12的程式碼,即從開始複製程式,cs:ip指向第一條程式,所以將cs的值賦給段暫存器ds。除最後兩條指令外,其餘指令長度17h位元組,因此迴圈17h次。
2.使用g命令執行到指定點,使用u命令進行反彙編