1. 程式人生 > >第五章 實驗

第五章 實驗

實驗1

綜合使用loop,[bx],編寫完整彙編程式,實現向記憶體b800:07b8 開始的連續16 個
字單元重複填充字資料0403H。

對源程式 進行彙編、連線、執行

 將原始碼程式中字資料0403H→修改為0441H,再次執行,執行結果為

發現結果的圖案發生了變化

 


 

實驗2

綜合使用loop,[bx],編寫完整彙編源程式,實現向記憶體0:200~0:23F 依次傳送資料0~63(3FH)。

對源程式 進行彙編、連線、執行

 

使用debug 的t 命令、g 命令、p 命令除錯,用d 命令檢視0:200~0:23F,確認是否將0~63 傳送至此段記憶體區域。

 

 

 


實驗3

 對源程式 進行彙編、連線、執行

因為要複製執行的指令,所以ds的值應該和和執行的程式碼段暫存器cs值一致,所以將cs值賦給ax,ax再賦給ds

一開始cx的值並不確定,我先用64試執行一下,再除錯,發現cx值為17h,說明這長度為17h,我們可以再修改cx的值,再進行彙編、連線、執行

 

 修改後再除錯

 用d 命令檢視0:200之後的若干位元組,觀察是否將mov ax, 4c00h 之前的指令複製到指定記憶體

 

 

在最後結果中我們看到mov ax, 4c00h 之前的指令

 

實驗感想

在[BX],loop指令中,CPU在執行loop指令時要進行兩步操作,cx=cx-1,判斷cx中的值,不為0則轉到標號處執行程式,如果為0則向下執行

所以cx的值影響著loop指令執行的次數,[BX]儲存的偏移地址,注意和ds程式碼段暫存器的配合使用。

inc指令

inc a相當於 add a,1

inc a 優點:速度快,佔用空間小

注意有時要儲存字時,加一不能滿足要求,靈活運用。

拓展:dec指令  減一指令 相當於 sub a,1

在實驗1中僅改變原始碼程式中字資料0403H→修改為0441H,執行後圖形發生變化,原理是什麼?