汇编实验三zxt
練習一
Step1:編寫t1.asm
Step2:對t1.asm進行編譯、連接、調試、運行
對t1進行調試
對t1的調試運行結束了,我不會對t1進行更改,所以我又寫了一個t2......(嚶),一下為t2的輸出
使用r命令查看cx、ds、cs的值 cs=ds+10這是因為ds指向內存區(qū)地址,cs指向程序開始的地址,psp占了256個字節(jié)所造成的
cx是程序長度
用d命令查看psp,反匯編得到
練習二
step1:編寫t3.asm
?
?清屏后的輸出為紅色的36
?
?編寫t4......
?
輸出為紅色的29
總結:練習一 ??
? ? ? ? ? 經百度,int 21h為一個子程序,要想調用它輸出數(shù)值的功能需要將ah的值設置為2,同時dl中存放想要輸出的字符的ASCII碼
? ? ? ? ? 查表得48為0,轉換為16進制就是30h(我用了數(shù)據(jù)結構課上寫的數(shù)值轉換,我真是個小天才,哈哈哈)
? ? ? ? ?
? ? ? ? 一次輸出一個字符,所以第一次輸出36,第二次輸出87啦~~~
? ? ? ? 練習二
? ? ? ? 0b800h是顯存的起始地址,bh表示顏色,bl存放數(shù)值(ASCII碼)
總結:學會了挺多的,學的越多越覺得自己啥也不會。昨天弄了一晚上,一直編譯不了,結果是因為忘了加文件的.asm后綴(哭泣)。
轉載于:https://www.cnblogs.com/fengmian/p/9973581.html
總結
- 上一篇: leecode第一百七十四题(地下城游戏
- 下一篇: 用trace32分析内核死机