實驗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 實驗二 ...