組合語言 實驗二

2022-06-03 23:27:11 字數 1773 閱讀 8096

實驗:

(1)使用debug,將下面的程式段寫入記憶體,逐條執行,根據指令執行後的實際情況填空。

① 在使用 a 命令輸入指令除錯前,使用 e 命令將記憶體單元 0021:0 ~0021:7 連續 8 個位元組資料修改為 30h, 31h, 32h, 33h,34h,35h,36h,37h  ② 將 p74 實驗任務(1)中第 1行的 mov ax, ffff → 改為 mov ax, 0021 。

mov ax,0021

mov ds,ax

mov ax,2200

mov ss,ax

mov sp,0100

mov ax,[0]    ;ax= 3130

add ax,[2]    ;ax= 6462

mov bx,[4]    ;bx= 3534

add bx,[6]    ;bx= 6c6a

push ax       ;sp= 00feh ,修改的記憶體單元位址是 2200:00fe       內容為 6462h

push bx       ;sp= 00fch ,修改的記憶體單元位址是 2200:00fc       內容為 6c6ah

pop ax        ;sp= 00feh ,ax= 6c6ah

pop bx        ;sp= 0100h ,bx= 6462h

push [4]      ;sp= 00feh ,修改的記憶體單元位址是 2200:00fe        內容為 3534

push [6]      ;sp= 00fch ,修改的記憶體單元位址是 2200:00fc        內容為 3736

按照要求輸入指令,使用a指令輸入。

下面是實驗截圖:

從上面的這些過程以及步驟中 我們可以將這些自己的推測以及實驗的結果進行驗證。

(2)仔細觀察圖3.19中的實驗過程,然後分析:為什麼2000:0~2000:f中的內容會發生改變

原來暫存器裡cs和ip裡的值都被賦值給位址了,這個是中斷機制。關於中斷機制,查了資料得知:中斷機制是現代計算機系統中的基本機制之一,它在系統中起著通訊網路的作用,以協調系統對各種外部事件的響應和處理,中斷是實現多道程式設計的必要條件,中斷是cpu 對系統發生的某個事件作出的一種反應。引起中斷的事件稱為中斷源。中斷源向cpu 提出處理的請求稱為中斷請求。發生中斷時被打斷程式的暫停點稱為斷點。cpu暫停現行程式而轉為響應中斷請求的過程稱為中斷響應。處理中斷源的程式稱為中斷處理程式。cpu執行有關的中斷處理程式稱為中斷處理。而返回斷點的過程稱為中斷返回。中斷的實現由軟體和硬體綜合完成,硬體部分叫做硬體裝置,軟體部分稱為軟體處理程式。

組合語言實驗二

預備知識 debug的使用 前面實驗中講了debug一些命令的用法,這裡再補充一些關於debug的知識。1 關於d命令 現在我們知道段位址是存放在暫存器中的,在d命令後面直接給出段位址,是debug提供的一種直觀的操作方式。d命令是由debug執行的,debug在執行d 1000 0這樣的命令時會先...

組合語言實驗二

datas segment 此處輸入資料段 datas ends stacks segment 此處輸入堆疊段 stacks ends codes segment assume cs codes,ds datas,ss stacks start mov ax,datas mov ds,ax 實驗二 ...

組合語言實驗二

用機器指令和彙編指令程式設計 實驗任務 一 使用 debug,將下面的程式段寫入記憶體,逐條執行,根據指令執行後實際運 況填空。在中途輸入指令的時候,錯把 add 指令輸成了 mov 指令。並且有乙個有趣的地方是,我這段指令中是有 mov sp,0100 這個指令的,但是在執行的時候這條指令並沒有顯...