1. 程式人生 > >匯編實驗三zxt

匯編實驗三zxt

image 技術分享 asc src 9.png 分享圖片 表示 地址 pan

練習一

Step1:編寫t1.asm

Step2:對t1.asm進行編譯、連接、調試、運行

技術分享圖片

對t1進行調試

技術分享圖片

技術分享圖片

技術分享圖片

對t1的調試運行結束了,我不會對t1進行更改,所以我又寫了一個t2......(嚶),一下為t2的輸出

技術分享圖片

使用r命令查看cx、ds、cs的值 cs=ds+10這是因為ds指向內存區地址,cs指向程序開始的地址,psp占了256個字節所造成的

cx是程序長度

用d命令查看psp,反匯編得到

技術分享圖片

練習二

step1:編寫t3.asm

技術分享圖片

清屏後的輸出為紅色的36

技術分享圖片

編寫t4......

技術分享圖片

輸出為紅色的29

技術分享圖片

技術分享圖片

技術分享圖片

總結:練習一

經百度,int 21h為一個子程序,要想調用它輸出數值的功能需要將ah的值設置為2,同時dl中存放想要輸出的字符的ASCII碼

查表得48為0,轉換為16進制就是30h(我用了數據結構課上寫的數值轉換,我真是個小天才,哈哈哈)

技術分享圖片

一次輸出一個字符,所以第一次輸出36,第二次輸出87啦~~~

練習二

0b800h是顯存的起始地址,bh表示顏色,bl存放數值(ASCII碼)

總結:學會了挺多的,學的越多越覺得自己啥也不會。昨天弄了一晚上,一直編譯不了,結果是因為忘了加文件的.asm後綴(哭泣)。

匯編實驗三zxt