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

彙編實驗三zxt

練習一

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字尾(哭泣)。