實驗一 用機器指令和彙編指令程式設計

2022-08-22 00:54:14 字數 1808 閱讀 4541

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 ...