編譯並進入debug模式
masm是微軟出的匯編編譯器,支持8088/8086架構的匯編語言,在DOS下運行,需要下載。masm包括:
(1)編輯程序edit.exe
(2)匯編程序masm.exe
(3)連接程序link.exe
(3)調試程序debug.exe
基本使用方法如下,僅供參考:
用之前最好把上面的幾個文件保存到盤符下的文件夾里,文件夾名字盡量簡單明了,一切為了操作簡單。
(1)最好不要用edit.exe,而用記事本編輯匯編程序,這樣操作比較方便。保存時,文件類型選為所有文件,再在文件名后面加上.asm,保存即可。
1.下載dosbox並安裝
2.舉個例子,在D盤新建一個文件夾dosbox,用於存放exe可執行文件
3、安裝DOSBox,完成后雙擊打開DOSBox
4、在輸入框狀態下z:\>
z:\>mount c d:\
5、把D盤作為模擬的C文件夾位置
z:\>c:
進入c盤
敲命令進入masm所在文件夾,輸入masm *.asm(*表示文件名)回車。 注意:最好*.asm在當前DOS提示符的路徑下面,否則會出現找不到*.asm的提示。
這時會提示
Object filename [*.OBJ]:
表示要生成的目標文件名稱,必須填,然后回車。提示
Source listing [NUL.LST]:
表示是否要生成列表文件,填寫這生成.lst文件,不填則放棄生成.lst文件。.lst文件用記事本打開能看到源代碼的語法錯誤,查錯想當方便,****強烈建議生成****。回車后提示
Cross-reference [NUL.CRF]:
表示生成交叉引用文件.crf,如果有多個.obj文件參與連接就要生成,回車后顯示錯誤數量等信息,編譯完成。
(3)輸入link *(.obj文件名)
一路回車,返回時已經生成了*.exe。
(4)debug使用比較復雜,將專門介紹。
6、在輸入框狀態下c:\>
c:\>cd dosbox 進入dosbox文件夾。在輸入框狀態下輸入debug *.exe進入debug模式。
debug:
-g 直接運行程序
-t 執行一句
-d x y, 輸出偏移地址為x到y(閉區間)存儲的值,都是8個bit的字節
-q 推出debug模式
不錯的總結:
https://blog.csdn.net/weixin_43916755/article/details/120297723
匯編
匯編除法:
https://blog.csdn.net/xiongyangg/article/details/50610607
對於除數是8位,則被除數是16位存在AX中,除完后,商在AL,余數在AH
對於除數是16位,則被除數是32位存在DX(高位)AX(低位)中,除完后,商在AX,余數在DX
把寄存器DL中的數字輸出。(可能為1位或者2位數)
https://zhuanlan.zhihu.com/p/50139518
子程序:(1位或者兩位十進制數)
PRINT PROC NEAR PUSH DX XOR AH,AH MOV AL,DL MOV DH,10 DIV DH CMP AL,0 JZ ONE PUSH AX MOV DL,AL ADD DL,'0' MOV AH,02H INT 21H POP AX ONE: MOV DL,AH ADD DL,'0' MOV AH,02H INT 21H POP DX RET PRINT ENDP