彙編實驗三zxt
阿新 • • 發佈:2018-11-17
練習一
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字尾(哭泣)。