組合語言之實驗二

2022-06-04 00:00:17 字數 1520 閱讀 6577

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

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

e 0021:0  0021:7  30h,31h,32h,33h,34h,34h,35h,36h,37h

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 用機器指令和彙編指令程式設計

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

輸入指令

執行

之前逐條執行檢視2000:0~2000:f 單 元值的變化,發現是當執行mov ss,ax  mov sp,10兩個指令時,改變記憶體單元值

實驗二的預備知識裡面有這一塊的知識,關於中斷機制,debug的t命令在執行修改暫存器ss的指令時,下一條指令也緊接著被執行。

後來查詢資料,得知中斷過程使用當前棧空間存放cpu關鍵資料,所以,你的棧裡就有些不是所操作的資料。 

組合語言程式設計實驗二

一 實驗目的 掌握彙編程式設計規範,熟悉程式設計環境。二 實驗內容 程式設計 參考教材實驗9,在螢幕中間分別顯示綠色 綠底紅色 白底藍色的字串 welcome to masm 三 實驗步驟演算法及關鍵 80x25彩色字元模式顯示緩衝區的結構 記憶體位址空間中,b8000h bffffh共32k空間為...

組合語言實驗二

預備知識 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 實驗二 ...