1. 程式人生 > >彙編實驗四 [bx]和loop的使用

彙編實驗四 [bx]和loop的使用

任務一     

綜合使用loop[bx],編寫完整彙編源程式,實現向記憶體b80007b8開始的連續16個字單元重複填充字資料0430h

1、原始碼,儲存為t3.asm

編譯、連線後執行該程式碼,結果如下圖:

2、將原始碼程式中字資料0403h修改為0441h後,再次執行結果如圖:

3、將原始碼程式中字資料0403h修改為0603h後,再次執行結果如圖:

由以上1、2、3的對比,我們可以看出bx中前兩個位元組控制顏色,後兩個位元組控制形狀。

 

任務二    

 綜合使用loop[bx],編寫完整彙編源程式,實現向記憶體

0200~023f依次傳送資料0~633FH)。

1、原始碼,儲存為t4.asm:

2、彙編、連線無誤後,進入debug環境使用d命令檢視,如下圖:

 用d命令可以看到傳送資料成功。

進入debug,先用r命令檢視個暫存器中的資料,我用t命令單步執行觀察了0:200~0:202的變化:

如上,確認了將00,01,02傳送到該區域,由於單步執行次數過多,剩下的部分我用g命令一次執行完了

 

 

任務三  

補全原始碼

因為複製的是彙編指令,所以必須為cs

 

彙編、連線後進入debug除錯環境,使用r命令檢視cx的值,檢視總長度:

用u命令進行反彙編,可以看出從第一條指令開始到mov  ax,4c00h的長度為十六進位制表示為17,即十進位制的23;

然後修改t5.asm中原始碼,把cx改為0017h:

彙編連線後進入debug除錯環境,r命令檢視cx,u命令反彙編:

用t命令和p命令除錯後結果:

d命令檢視0:200~0:23F如圖:

與前面兩個u命令反彙編得到的結果對比,可以看出指令被寫到記憶體0:200處。

 

總結與體會

  複習了實驗三的彙編源程式的編寫,彙編、連線,學習新的[bx]和loop的使用,發現在debug中對g命令與p命令的使用還不太熟悉,需要加強基礎知識的複習鞏固。

  對於選做部分,因為自己對棧的使用還不是很瞭解,所以在此沒有用棧的特性來做。