實驗四 BX 和loop的使用

2022-06-04 17:03:08 字數 1759 閱讀 2643

源程式如圖所示

編譯連線後的執行結果

將line7的0403h改為0441h後的執行結果為

必做:綜合使用loop, [bx], mov實現

源程式如圖所示

編譯連線後進行追蹤

使用d命令和g命令檢視執行前後 0:200~23f的變化

選做*:利用棧的特性,綜合使用 loop,push 實現(限定僅使用 8086 中已學過 指令實現)

源程式如圖所示

追蹤程式執行過程,使用d命令和g命令檢視執行前後 0:200~23f的變化

end這個實驗要求我們複製程式返回指令之前的指令,那麼我們首先要做的就是找到程式儲存的位置,由第四章4.9可知cs:ip指向程式的第一條指令,那麼我們看一下這個程式,它的line4要求我們將ax的值存入到段位址ds中,而再看line9和line10,很明顯,這就是將指令複製到0:200處的指令,那麼ds:bx內的資料就是我們的程式,而且我們可以從cs和code得到程式的段位址,那麼line3第乙個空應該填cs或者code,接下來就是line8的空,cx用來控制迴圈的次數,但我們不知道這個程式到底有多少位元組,那我們應該先隨便填寫乙個數,編譯連線後追蹤程式,用r命令檢視程式的總長度(cx=1c),但我們得到的位元組數是包括了程式返回指令的位元組數的,因此我們要減去多餘的數,已知程式返回指令的位元組數為5,那麼我們就減去5,得到總長為17,因為這是16進製制,所以我們應該填 17h.

操作過程如下圖所示

實驗四 bx 和loop的使用

2 assume cs code code segment mov ax,0ffffh mov ds,ax mov bx,6 mov al,bx mov ah,0 mov dx,0 mov cx,3 s add dx,ax loop s mov ax,4c00h int 21hcode ends e...

實驗四 bx 和loop的使用

1.綜合使用 loop,bx 編寫完整匯程式設計序,實現向記憶體 b800 07b8 開始的連續 16 個 字單元重複填充字資料0403h。如下 對他進行連線執行,出現了紅心。2.綜合使用 loop,bx 編寫完整彙編源程式,實現向記憶體 0 200 0 23f 依次傳送資料 0 63 3fh 寫出...

實驗四 bx 和loop的使用

實驗1 綜合使用 loop,bx 編寫完整匯程式設計序,實現向記憶體 b800 07b8 開始的連續 16 個 字單元重複填充字資料0403h。1 編寫 編譯 連線 執行 執行結果 2 將源 程式中字資料0403h修改為0441h。編譯 連線 執行 執行結果 實驗2 1 綜合使用 loop,bx 編...