学汇编语言肯定还是要练习的,ZJUT 的汇编课程使用的汇编语言是微软的 MASM。
最理想的实验环境就是 DOS 系统。
Dos 模拟器
哥们的这篇文章中用的 dosbox 其实并不好用: 例如无法迅速调整界面字体大小,导致在高分辨环境下十分瞎眼。
笔者推荐使用 dosbox-staging.
在 Archlinux 下安装:
|
|
开箱即用,十分方便。
配置
下载常用工具 (上述连接也是哥们的服务,笔者比较懒hhh)
解压到某一个文件夹中,例如笔者是
~/Learn/asm/tools
Dos模拟器需要手动挂载盘符,而且没有添加 PATH 变量的情况下十分甚至九分的难用。
在配置文件 ~/.copfig/dosbox-staging.conf
最后(autoexec
块)后加上
|
|
上述命令假设你的工作目录下的tools目录中为masm.exe等
DOS 系统不区分大小写
除此之外 masm 在进行汇编以及 link 进行链接的时候还需要敲一堆回车,为了方便笔者编写了以下的 bat 批处理文件
|
|
并将之放置在上述的 tools 目录中
使用命令(例如这个脚本叫run.bat
, 你的汇编源代码为example.asm
)
|
|
则可以编译运行.
Debug 常用命令
q
退出?
帮助菜单d 10:10 10
以一行16个字节的方式打印从10:10 后 10 * 16 个字节u 10:10 10
反编译,同上范围r
打印寄存器状态u cs:ip
可以直接通过cs
等等读取寄存器t 1
执行1步,(默认1步)
一般如果要看数据段内容,执行:
t 3
(执行到寄存器赋值完毕)d ds:0
打印 ds:0 开始的几行内容