這章算是一個實踐部分把,寫 了一個彙編程序,並用debug去跟蹤每條指令的進程,看寄存器和內存的變化,算是對以前的一個小總結把編程
4.1 源程序到執行的過程.net
一個彙編程序寫好,要編譯成目標文件,文件後綴是obj的,再連接造成exe後綴的,再接着去執行debug
4.2 源程序教程
直接上圖把進程
僞指令由編譯器執行,彙編指令由CPU執行內存
assume是僞指令,關聯段寄存器和程序中用segment and end表明的段關聯編譯器
segment 和ends表示段的開始和結束it
end表示整個程序結束asm
另外程序會有個叫程序返回的東西編譯
如p2要運行的話,必須以前有個P1在運行中,P1把p2扔到內存中,把CPU控制權給P2,p2運行完了,cpu控制權還給P1。這就叫程序返回
最後2條指令
mov ax,4c00h
int 21h
就是實現程序返回的。具體爲啥我也不知道,死記住了
4.3 寫源程序
1.asm
4.4 編譯
1.asm->1.obj
4.5連接
1.obj->1.exe
4.6 簡化編譯和連接到同一步驟
前面的編譯和連接書上是分別用微軟的masm5.0和linker3.6
但個人是64位的機子,跑步起來
就用了dosbox
放連接
http://download.csdn.net/download/wy4649/5536047
裏面有教程
點運行,能夠直接完成編譯和連接的過程,生成1.exe文件
4.7運行跟蹤
用debug去一步步跟蹤1.exe的執行
截圖放個最後程序運行的狀況
另外,最後一條語句執行的時候要用P去執行,而不是t。具體不是很清晰,P大概是表明一個程序的結束把,防止debug再跟蹤下面和程序無關的指令把
這章必定要本身動手敲敲敲敲,敲了N久才理解了~~~~~~
還有折騰DOSBOX也花了很多時間
就先這樣把。晚安~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
EOF