在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 的图形界面,如:
3.然后模拟指定C盘的位置
在dosbox中输入 mount c /home/wang/masm (注意:/home/wang/masm 是我的系统masm所在路径)
之后输入: c: 回车
这样就进入你指定的目录了。
现在环境已经搭建完成。
三.指令编写(两个独立事例)
事例1.Debug计算2的4次方
输入debug回车,进入debug状态,输入 a (a是逐行汇编)
然后输入指令 ,再输入 t(跟踪执行)察看结果,如图:
事例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,然后按几次回车就可以了
然后是链接,在DosBox下执行: link hello (注意:没有后缀)
最后运行即可: