Linux下使用dosemu写汇编
2015-10-09 23:51
405 查看
原文链接:http://blog.csdn.net/lyh__521/article/details/49010397
dos 下用到的程序放置在 ~/.dosemu/drives/d/bin 目录下
dosemu 已经自带了debug,若要编译汇编代码还需要增加 masm.exe 和 link.exe 程序(如上图绿色文件,网上下载即可)。或者通过以下链接下载。
http://download.csdn.net/download/lyh__521/9172373
在dos默认进入的C盘下编写即可,两种方法
在dos下用自带的edit 编辑器编写,输入命令edit
打开后鼠标选择File->New 开始编写,之后选择Save as 保存为 .asm 后缀文件即可
// $ 符号表示结束标志
在C盘对应的 ~/.dosemu/drives/c 目录下用vim 编写
但是可能会觉得在这个目录下编写程序有点麻烦,不太好管理程序,而我们平时习惯在家目录下专门的文件夹内写程序(我的~/Program/Assembly/Nasm 目录是专门存放汇编程序的)。我们可以在C盘目录下创建一个软链接:
这样我们在~/Program/Assembly/Nasm下写的汇编代码,在Dos 下进入Asm目录就可以直接编译。
汇编
执行命令:
输入文件名hello,不需要加后缀.asm ,然后一直回车,汇编完成,生成hello.obj 文件。
链接
执行命令:
输入文件名hello,不需要.obj后缀,然后一直回车,生成可执行程序hello.exe,(有一个报错不用理会)。
运行
输入hello即可运行程序
ubuntu下安装dosemu (同类软件还有dosbox)模拟Dos环境
sudo apt-get install dosemu
安装汇编器和链接器
运行sudo dosemu
dosemu 下看到的C盘和D盘只是虚拟出来的,对应的目录在~/.dosemu/drives 下: 执行命令: cd ~/.dosemu/drives
dos 下用到的程序放置在 ~/.dosemu/drives/d/bin 目录下
dosemu 已经自带了debug,若要编译汇编代码还需要增加 masm.exe 和 link.exe 程序(如上图绿色文件,网上下载即可)。或者通过以下链接下载。
http://download.csdn.net/download/lyh__521/9172373
编写汇编代码
在哪编写?在dos默认进入的C盘下编写即可,两种方法
在dos下用自带的edit 编辑器编写,输入命令edit
打开后鼠标选择File->New 开始编写,之后选择Save as 保存为 .asm 后缀文件即可
// $ 符号表示结束标志
在C盘对应的 ~/.dosemu/drives/c 目录下用vim 编写
但是可能会觉得在这个目录下编写程序有点麻烦,不太好管理程序,而我们平时习惯在家目录下专门的文件夹内写程序(我的~/Program/Assembly/Nasm 目录是专门存放汇编程序的)。我们可以在C盘目录下创建一个软链接:
sudo ln -s ~/Program/Assembly/Nasm ./Asm
这样我们在~/Program/Assembly/Nasm下写的汇编代码,在Dos 下进入Asm目录就可以直接编译。
汇编链接
编译上面写好的 hello.asm 文件汇编
执行命令:
masm
输入文件名hello,不需要加后缀.asm ,然后一直回车,汇编完成,生成hello.obj 文件。
链接
执行命令:
link
输入文件名hello,不需要.obj后缀,然后一直回车,生成可执行程序hello.exe,(有一个报错不用理会)。
运行
输入hello即可运行程序
退出
exitemu
相关文章推荐
- Linux socket 初步
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区