彙編實驗四

2022-06-04 10:33:10 字數 1865 閱讀 3248

實驗任務:

一、綜合使用 loop,[bx],編寫完整匯程式設計序,實現向記憶體 b800:07b8 開始的連續 16 個

字單元重複填充字資料 0403h。

源**如下:

直接執行程式

符合實驗結論

根據要求四,將源**程式中字資料 0403h→修改為 0441h,再次執行

二、綜合使用 loop,[bx],編寫完整彙編源程式,實現向記憶體 0:200~0:23f 依次傳送資料

0~63(3fh)

源**如下:

用debug將m2.exe載入,並用命令檢視:

先用u命令檢視反彙編位址方便接下來執行g命令跳轉

用p命令跳轉迴圈

用d命令檢視對應記憶體單元的值是否被修改

確實按要求修改完畢,實驗結束

三、教材實驗 4(3)(p121)

源**如下:

注意,cx的值先是隨意賦值,然後在debug中通過反彙編檢視loop下一條命令即mov ax,4c00h對應位址的值0017h減去開始的0000h即為**長度17h也即是應該重複執行的次數

複製的是mov ax,4c00h之前的指令,從076a:0000到076a:0016

複製有17個位元組,位元組數量通過debug的u命令反彙編得到(cx一開始的值隨意複製)

用命令檢視mov ax,4c00h命令之前(即從076a:0000開始的)記憶體單元:

觀察到記憶體單元複製結果正確

實驗結論:

實驗1中注意傳遞的是,不是位元組,要先傳遞到乙個16位暫存器ax,然後分開al,ah按字在記憶體中儲存的方式傳遞到記憶體單元中

,注意對視訊記憶體的修改能直接作用於顯示屏從而反映輸出結果這個用法很巧妙

實驗2中注意cx的傳遞次數,如果開始的值為0,那麼要傳遞要求次數+1次(是否加一可以由實踐結論得出)

實驗3中注意cx的取值,一開始是不知道**長度的,要通過先隨意複製,呼叫debug的u命令檢視想要複製的**末尾位址,然後再次修改cx的值完成複製

其中還要注意:應為實驗次數過多,有可能上一題的實驗結果對記憶體的修改會影響下一題,保險的做法是重新啟動一次dosbox!

彙編 實驗四

實驗內容 一 執行截圖 除錯截圖 將0403h改為0441h後 執行截圖 除錯截圖 實驗內容 二 1 除錯截圖 end除錯截圖 思考 mov ss,ax 指定堆疊段為0 200處 mov sp,40h 指定棧頂指標為0 23f處 定義棧位置為200 23f 然後將資料0 63 倒序壓入棧 在push...

彙編實驗四

1.綜合使用loop,bx 編寫匯程式設計序,實現向記憶體b800 07b8開始的連續16個位元組單元重複填充字資料0403h 如下 assume cs code code segment mov ax,0b800h mov ds,ax mov bx,07b8h mov cx,16 s mov bx...

彙編實驗四zxt

知識點 1.bx 表示乙個記憶體單元,偏移位址在bx中 2.中的元素可以有三種型別 a.暫存器名b.段暫存器名c.記憶體單元的實體地址 x 所表示的資料有兩種 a.位元組b.字 3.用idata表示常量 4.inc bx的含義是bx中的內容加1 5.loop 標號 步驟 cx cx 1 判斷cx中的...