【筆記】彙編語言

 

*如今王爽老師的《彙編語言》已經看到4.5了,想把接下來看書過程當中遇到的所學所想記下來。eclipse

 

和masm奮戰了一下午

正在安裝masm,感受這個工具的安裝界面就頗有年代感(忘記截圖了),並且安裝真的很慢。工具

這本書太老了,我翻看了一下是2003年出的,致使書中說的masm 5.0都變成了masm 11……spa

安裝完畢後發現根本找不到一個叫masm.exe的程序,不知道masm32這個文件夾中哪個纔是編譯器…….net

查了不少資料發現一個叫qeditor的程序,應該是這個版本11把編譯器作成了eclipse那種圖形界面。3d

結果在link的時候就出現了問題:code

我懷疑是這樣的:blog

由於個人系統是64位的,按理來講應該在Dosbox中編譯才能成功,但這個圖形界面的編譯器又不能在Dos方式下打開,致使只能在本機64位的環境下編譯,就沒法成功(?)ip

又找資料找啊找,找到了這篇文章:DOSBox0.74以及彙編編譯器的安裝使用(虛擬)64位資源

實際上是使用了文章中給的資源(主要是masm和link),以後在cmd中就能夠實現4.4和4.5中寫道的編譯鏈接了。get

須要注意的是由於咱們用的是8086的彙編語言,編譯造成的exe也是16位的,並不能在64位系統上直接執行:

試了一下在Dos中運行,沒有反應……固然沒有反應,由於asm文件中的內容是這樣的:

 1 assume cs:codesg
 2 
 3 codesg segment
 4 
 5     mov ax,123h
 6     mov bx,456h
 7     add ax,bx
 8     add ax,ax
 9 
10     mov ax,4c00h
11     int 21h
12 
13 codesg ends
14 
15 end

只是作了一些寄存器的處理,並無什麼要顯示出來的(真可惡我看了4.7才反應過來這一點,以前先入爲主地覺得在Dos中也沒法運行……)

看到說「存有機器碼的目標文件」想起來把obj文件放到010editor看看是什麼狀況:

 

obj文件內容要比本來的asm文件少,標註出的部分是彙編指令的機器碼。再對比一下exe:

中間全是零,代碼段在最後。

相關文章
相關標籤/搜索