匯編環境搭建在Linux下


匯編環境搭建終端

安裝 dosbox
sudo apt-get install dosbox
下載
必備文件調試鏈接 debug link masm 的 exe 文件
在硬盤里創建 masm 目錄,將上面三個文件放到 masm 目錄下
然后終端輸入的 DOSBox
運行后
創建模擬 C 盤目錄
mount c / home /~ / masm
再進入模擬目錄下
c:此時
就可以開始匯編編程了^_^

用 vim 編輯 hello world 保存成 hello.asm

masm hello.asm // 此處按回車 3 下

link hello // 同理

運行 hello // 此處可能最后會不出結果 需要退出 dosbox 重新進入一下就可以了

這里貼出 hello world 的匯編代碼

  DATA    SEGMENT
      STRING  DB   'Hello World!', '$'
  DATA    ENDS

  STACK1  SEGMENT PARA    STACK
      DW  20H DUP  (0)
  STACK1  ENDS
  CODE   SEGMENT
  ASSUME  CS:CODE, DS:DATA, SS:STACK1
  BEGIN:  MOV     AX, DATA
      MOV DS, AX
      LEA     DX, STRING
      MOV     AH, 9
      INT     21H
      MOV     AH, 4CH
      INT 21H
  CODE   ENDS

      END BEGIN

linux 下生成配置文件

參見鏈接

配置表 在這分享下

調了分辨率 和 啟動 自動執行代碼 省去了 輸入mount xxx;c:

#這個在24行處  分辨率可自行調整
fullscreen=false
fulldouble=false
fullresolution=original
windowresolution=1024x640
output=opengl
autolock=true
sensitivity=100
waitonerror=true
priority=higher,normal
mapperfile=mapper-0.74.map
usescancodes=true


#這個在文件底部
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c: /home/lambert/masm
c:

執行一個匯編源程序的步驟在 dosbox 下 (詳述)

在 dosbox 下 輸入 masm 可以顯示出版本

  • masm

    編譯文件 masm xx.asm
    第一個回車 確定輸出目標文件名稱
    第二個回車 忽略列表文件生成
    第三個回車 忽略交叉引用文件生成

在 dosbox 下 輸入 link 可以顯示出版本

  • link

    連接 目標文件 從而得到可執行文件
    連接文件 link xx
    第一個回車 輸入可執行程序的名稱
    第二個回車 忽略映像文件生成
    第三個回車 輸入調用的子程序 忽略庫文件的連接 忽略按回車
    最后會報一個錯LINK : warning L4021:no stack segment // 沒有棧段 這里我們不理會這個錯誤

說完復雜的 方法 現在換簡單的

masm xx; // 在結尾加上分行,按enter后,編譯器就對xx文件進行編譯,在當前目錄生成目標文件xx.obj,並在編譯的過程中自動忽略中間文件的生成

link xx; // 同上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM