linux下搭建汇编环境

时间:2021-09-20 11:59:55


在windows学习都是用的MASM,那如果在linux下也用MASM呢,怎么办?方法如下:

一.安装

可以通过一些软件,来模拟DOS,可以用Dosbox。如果用的ubuntu,在软件中心就可以找到。

直接安装后就可以在启动栏看到图标 ,     或是通过命令:sudo apt-get install dosbox  

二.环境搭建

1.在 linux下新建一个 masm 文件夹,然后把 windows下的masm的 LINK.EXE  、MASM.EXE 拷贝到masm中;   由于DosBox中是没有 Debug 程序,需要先下载一个Win7  32位的debug程序下载地址:http://u.115.com/file/b3mmegwu ,   然后把 debug.exe 也放置到masm文件夹中,即可。

2.在终端中直接输入dosbox 回车即可,将会跳出 DosBox 的图形界面,如:


linux下搭建汇编环境


3.然后模拟指定C盘的位置
   在dosbox中输入  mount   c  /home/wang/masm      (注意:/home/wang/masm    是我的系统masm所在路径

  之后输入: c:   回车

  这样就进入你指定的目录了。

  现在环境已经搭建完成。


三.指令编写(两个独立事例)

事例1.Debug计算2的4次方

输入debug回车,进入debug状态,输入 a  (a是逐行汇编)
然后输入指令 ,再输入 t(跟踪执行)察看结果,如图:

debug命令请参考:http://wenku.baidu.com/view/6431b9e5524de518964b7df6.html
linux下搭建汇编环境

事例2.编写 helloworld 

一.汇编的源程序文件是以.asm为后缀的文件。编写程序使用任意编辑器即可,建议用vim,保存为 hello.asm ,代码是:

DATA SEGMENT
BUF DB 'HELLO WORLD! THIS IS MY FIRST ASM FILE! $'
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,BUF
MOV AH,09
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START

二.在DosBox界面下输入 masm hello.asm,然后按几次回车就可以了

linux下搭建汇编环境

然后是链接,在DosBox下执行: link  hello   (注意:没有后缀)

linux下搭建汇编环境


最后运行即可:

linux下搭建汇编环境