1. 程式人生 > >實驗四:【bx】和loop的使用

實驗四:【bx】和loop的使用

復制 加強 分享圖片 很多 nbsp alt 要求 過程 保存

任務一:使用loop,【bx】實現向內存b800h:07b8開始的連續16個字單元重復填充數據0403h

第一步將要實現的代碼寫入記事本:

技術分享圖片

根據實驗三可知我們將記事本文件保存在masm根目錄下即可,文件拓展名為t1.asm

第二步:我們在masm集成環境下運行這個代碼:

技術分享圖片

可以看見出現了一排紅色的心(填充數據為什麽填充出一排心來?)

第三步:將代碼中0403h改為0441h在masm集成環境中再運行一次截圖如下:

技術分享圖片

可以看出這一次將字數據改為0441h後,運行的結果變為一排A。

任務二:使用loop,【bx】,編寫完整代碼,實現向0:200~0:23f依次傳送數據0~63(3f)

第一步:將實驗所需代碼寫入記事本並存於masm根目錄下:

技術分享圖片

第二步:通過masm編譯,連接後,運行,在debug裏面調試截圖如下:

技術分享圖片

可見從段地址0:200~0:23f中已經填充了0~3f的數據。

任務三:補全書上的代碼,在運行反匯編

第一步:將代碼補全寫入記事本

技術分享圖片

其中所填的cs,是因為需要復制指令,所以段地址必須為cs。

第二步:用debug調試(r命令查看寄存器cs)截圖如下:

技術分享圖片

可以看見此時段地址為0770:0000。

第三步:在debug環境下調試該代碼(反匯編)截圖如下:

技術分享圖片

看到在指令loop s 之後的段地址為0770:0017,可知第二空的值所填為17h,符合結論,cx的值為17h。

總結:這一章和實驗四都是要求充分運用loop和【bx】來編寫代碼,這一次的實驗下來,感覺自己對

這兩個指令的運用還不是很熟悉,很多的實驗過程都是詢問了下同學才知道的,通過這次實驗也看到了

自己這一章的不足,可以加強一下

實驗四:【bx】和loop的使用