1. 熟練掌握使用debug工具編寫和除錯x86彙編命令的方法
2. 掌握8086cpu、暫存器、記憶體的基礎知識
3. 理解並掌握記憶體中多位元組資料的存放:小端法
4. 理解並掌握「棧」記憶體空間的特性和使用
5. 掌握指令mov, add, sub, jmp, push, pop的基礎用法
1. 複習教材第1~2章內容,完成教材內相關檢測點
2. 複習教材第3章「棧」的知識:棧的特性、暫存器 ss 和 sp、指令 push 和 pop ,完成教材
3.6~3.9 節內的問題 3.6~3.12,檢測點 3.1~3.2
3. 結合教材實驗1(p35)和課程qq群檔案中的文件,學習debug工具用法。
① 前3行彙編指令的功能,特別是,mov sp, 10意味著什麼?初始時棧頂和棧底分別是?
彙編指令 功能
mov ax,2000
mov ss,ax 設定棧的段位址,ss=2000h,不能直接向段暫存器ss中送入資料,所以用ax中轉
mov sp,10 設定棧頂的偏移位址,因棧為空,所以設sp=0010h
初始時棧頂和棧底都是2000:0010
② 基於單步除錯觀察到的變化,給出你對此的思考及可能原因分析。
在用t命令執行mov ss,ax的時候,它的下一條指令也緊接著執行了,引發中斷機制,cpu會將一些中斷
例程使用的暫存器變數自動壓棧到棧中
如圖中標註的08 01 3f 07對應cs:ip的狀態
push ax的執行
(1) sp=sp-2,ss:sp指向當前棧頂前面的單元,以當前棧前面的單元為新的棧頂;
(2)將ax中的內容送入ss:sp指向的記憶體單元處,ss:sp此時指向新棧頂。
debug功能
(1)用debug的r命令檢視、改變cpu暫存器的內容。
(2)用debug的d命令檢視記憶體中的內容。
(3)用debug的e命令改寫記憶體中的內容。
(4)用debug的u命令將記憶體中的機器指令翻譯成彙編指令。
(5)用debug的t命令執行一條機器指令。
(6)用debug的a命令以彙編指令的格式在記憶體中寫入一條機器指令。
實驗 用機器指令和彙編指令程式設計
1 教材實驗一結論 1 通過以下兩種方式將以下程式段寫入記憶體 e命令和a命令。b8 20 4e mov ax,4e20h 0516 14add ax,1416h bb 00 20mov bx,2000h 01d8 add ax,bx 89c3 mov bx,ax 01d8 add ax,bx b8...
彙編實驗1 用機器指令和彙編指令程式設計
1.實驗執行環境 win10系統下的dosbox 2.實驗所用偵錯程式為debug 一 基礎指令 此次實驗中所用到的7條debug命令 r,d,e,u t,a 1.r命令 檢視 改變cpu暫存器的內容 檢視暫存器的值 改變cs ip的值 可見cs,ip的值由上面的073f和0100變成了0000 2...
實驗1 用機器指令和彙編指令程式設計
1.熟練掌握使用debug工具編寫和除錯x86彙編命令的方法 2.掌握8086cpu 暫存器 記憶體的基礎知識 3.理解並掌握記憶體中多位元組資料的存放 小端法 4.理解並掌握 棧 記憶體空間的特性和使用 5.掌握指令mov,add,sub,jmp,push,pop的基礎用法 練習教材p35 45 ...