对于经典的hellowworld,在linux下如何汇编实现呢?因为平时的学习都是用的MASM,所以在linux下也用MASM
一、我们可以通过一些软件,来模拟DOS,可以用Dosbox。如果用的ubuntu,在软件中心就可以找到。直接安装后就可以在启动栏看到图标
或是通过命令:sudo apt-get install dosbox
如果是Rpm系,那么输入: yum -y install dosbox
二、安装之后可以通过两种方式进入dosbox界面
1、直接在启动栏打开
2、在终端直接输入dosbox
如下:
三、需要模拟指定C盘的位置。
在dosbox中输入: mount c /home/sincerefly/study/asm/tools
之后输入: c:
这样就进入你指定的目录了。
现在环境已经搭建完成。
四、现在来编写我们的第一个helloworld
汇编的源程序文件是以.asm为后缀的文件。编写程序使用任意编辑器即可。
可以使用vim和Emacs。
如果还不会用的话,那么推荐使用gedit。
把如下汇编代码编辑保存:
- data SEGMENT
- msg DB 'Hello, world.$'
- data ENDS
- code SEGMENT
- ASSUME CS:code,DS:data
- start:
- MOV AX,data
- MOV DS,AX
- lea dx,msg
- mov ah,9h
- int 21h
- MOV AX,4C00h
- INT 21h
- code ENDS
- END start
在刚才的指定路径下保存为hw.asm(文件名字不能太长,否则会出错)之后我们来编译它。
在DOSBOX界面下输入:masm hw.asm
这时可能会出现:illegal command masm.
(这是因为还没有配置好masm命令,我们要将masm.exe文件放到汇编文件所在目录,链接的时候需要用到link.exe文件,所以我们也把该文件放到汇编文件所在目录)。。。
现在我们在DOSBOX界面下再次输入:masm hw.asm 按几次回车
接下来,该链接了,在dosbox下执行(注意没有后缀了):link hw
现在就可以运行了
在dosbox中输入:hw
阅读(13206) | 评论(3) | 转发(0) |