当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : Linux下使用MASM编写汇编程序
帖子发表于 : 2008-11-30 14:32 

注册: 2008-11-15 16:14
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
目前多数学校的微机原理课程使用的是MASM汇编器,而Linux中的汇编工具是nasm 。二者之间的语法有不少差别,不能通用。

安装dosbox 或dosemu 之后都可以在Linux中使用MASM和Debug,而且由于是在Dosbox及dosemu的虚拟机中运行,安全性也较高。
安装

你可以选择安装dosbox或dosemu,也可以选择二者都安装。

Dosbox的网站为 http://www.dosbox.com/ ,多数发行版的软件仓库中都配有这一软件,比如Debian /Ubuntu 中的安装方法为:

$ sudo apt-get install dosbox

Dosemu的网站为 http://dosemu.sourceforge.net/ ,同样存在于多数发行版的软件仓库中,Debian或Ubuntu中的安装方法为:

$ sudo apt-get install dosemu

准备汇编工具


debug
提示:
dosemu已经包括了debug,如果你使用dosemu,就无需单独准备debug了。

如果你安装有Windows XP,那可以在Windows XP的system32文件夹找到debug.exe ,如果没有WinXP,就需要上网下载,如这个网页http://www.pudn.com/downloads40/sourcecode/asm/detail139573.html
masm

你需要找一个DOS中的masm软件,在DOS中工作的最好是5.0版本,上面的链接中就有。


配置DOS虚拟机

分别介绍Dosbox和dosemu的配置方法:


dosbox

把上面的工具放到一个文件夹中,如~/learnASM/tools/ ,在~/learnASM 中创建一个Shell脚本:

$ cd ~/learnASM
$ echo "dosbox -c 'mount c: ./' -c 'path %path%;c:\tools'" > runDosbox.sh
$ chmod +x runDosbox.sh

现在就可以用'./runDosbox.sh'启动dosbox了:

$ ./runDosbox.sh


dosemu

dosemu的配置方法很简单 ,由于默认dosemu中的D盘就是用户的根目录,只要把masm放在好找的地方就可以了。也可以修改~/.dosemu/drive_c/autoexec.bat (需要root权限)把masm的路径加到PATH里。
提示:
如果只是进行汇编操作,还可以运行dosemu -dumb ,dosemu会在当前shell中运行。

如果要全屏运行dosemu,推荐在/etc/dosemu/dosemu.conf 中加入 $_X_font="vga8x19" ,以使全屏时的字体正常。
提示:
退出dosemu的命令是exitemu


使用注意事项

可以使用VI等编辑器在系统中编辑源码,然后在Dosbox界面用Ctrl-F4 刷新目录。

为了在vim 中正常高亮显示汇编源码,可以创建/etc/vim/filetype.vim ,并加入如下内容:

augroup filetypedetect
au BufNewFile,BufRead *.asm setf masm
augroup END

这样后缀为.asm 的文件就可以正常高亮了。
参考
http://hi.baidu.com/jack%5Fhunt/blog/it ... 52488.html
http://dosemu.sourceforge.net/docs/HOWTO/


页首
 用户资料  
 
2 楼 
 文章标题 : Re: Linux下使用MASM编写汇编程序
帖子发表于 : 2008-11-30 14:35 

注册: 2008-11-15 16:14
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
看了如果感觉好,记得给我顶起哈!呵呵~~~


页首
 用户资料  
 
3 楼 
 文章标题 : Re: Linux下使用MASM编写汇编程序
帖子发表于 : 2008-11-30 17:05 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
自学AT&T汇编也可以


_________________
目前负债150多万


页首
 用户资料  
 
4 楼 
 文章标题 : Re: Linux下使用MASM编写汇编程序
帖子发表于 : 2008-11-30 17:07 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
mark,顺便帮顶下 :em11


页首
 用户资料  
 
5 楼 
 文章标题 : Re: Linux下使用MASM编写汇编程序
帖子发表于 : 2008-12-05 12:20 

注册: 2008-07-05 11:12
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
:em01
不错,学到了不少, 顶了。
:em11


页首
 用户资料  
 
6 楼 
 文章标题 : Re: Linux下使用MASM编写汇编程序
帖子发表于 : 2008-12-06 18:37 

注册: 2008-11-15 16:14
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
问题在补充一下!哈哈~~~


MASM.EXE,LINK.EXE,EDIT.COM和DEBUG.EXE等工具在以下网址下载:
http://www.programsalon.com/downloads40 ... 39573.html
$ mkdir ~/dos (汇编工具放在这个文件夹里)
$ dosbox

在dosbox下:
>mount d: ~/dos
>d:


页首
 用户资料  
 
7 楼 
 文章标题 : Re: Linux下使用MASM编写汇编程序
帖子发表于 : 2008-12-08 10:07 
头像

注册: 2007-12-02 12:42
帖子: 40
送出感谢: 0 次
接收感谢: 0 次
感谢楼主分享! :em11

运行了一下dosbox,感觉有点耗CPU呀!
于是改用dosemu,还可以,不过只能在终端中用“sudo dosemu”运行。
用户权限不能执行dosemu。


页首
 用户资料  
 
8 楼 
 文章标题 : Re: Linux下使用MASM编写汇编程序
帖子发表于 : 2009-12-07 11:21 

注册: 2009-03-04 16:59
帖子: 6
送出感谢: 0 次
接收感谢: 0 次
好得很呀,哈哈哈,顶你! :em11


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译