使用MASM编写汇编程序
出自Linux Wiki
目前多数学校的微机原理课程使用的是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 === 如果你安装有Windows XP,那可以在Windows XP的system32文件夹找到debug.exe,如果没有WinXP,就需要上网下载,如这个网页引用错误 无效呼叫;没有指定的输入http://hi.baidu.com/jack%5Fhunt/blog/item/77aea650ff90016085352488.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的配置方法很简单引用错误 无效呼叫;没有指定的输入http://dosemu.sourceforge.net/docs/HOWTO/,由于默认dosemu中的D盘就是用户的根目录,只要把masm放在好找的地方就可以了。也可以修改~/.dosemu/drive_c/autoexec.bat(需要root权限)把masm的路径加到PATH里。 如果要全屏运行dosemu,推荐在/etc/dosemu/dosemu.conf中加入$_X_font="vga8x19",以使全屏时的字体正常。 == 使用注意事项 == 可以使用VI等编辑器在系统中编辑源码,然後在Dosbox界面用Ctrl-F4刷新目录。 为了在vim中正常高亮显示汇编源码,可以创建/etc/vim/filetype.vim,并加入如下内容: augroup filetypedetect au BufNewFile,BufRead *.asm setf masm augroup END 这样後缀为.asm的文件就可以正常高亮了。 遇到的问题 在用DOSBOX学汇编的时候,需要用的debug跟踪程序,发现以下问题 T 跟踪后,如下图 发现,MOV AX,0200 执行后无效? AX 未发生改变.. CS:IP 指向是00703:002 也不是第二条指令的地址00703:003 希望有高手解答下,谢谢 == == == 参考 ==