汇编语言学习问题
如何运行汇编程序
-
编译 mul.asm 文件:
masm mul.asm
-
链接 mul.obj 文件:
link mul
或者link mul.obj
-
运行 mul.exe 文件:
mul
或者mul.exe
设置vscode中调试汇编程序
DOSBOX中debug常用指令的使用
操作符 | |
---|---|
r | 查看寄存器中的内容 |
d | 查看内存中的内容 |
t | 执行CS:IP处的指令 |
q | 退出debug |
用D命令查看内存中的内容
以内存10000H处的内容为例,用“d 段地址:偏移地址”的格式来查看
图中
左边,是每行的起始地址。
中间,是指定地址开始的128个单元的内容,用16进制的格式输出,每行输出从16的整数倍的地址开始,最多输出16个单元的内容。
右边,是每个单元中的数据对应的ASCII码字符,当数据没有对应的ASCII字符时,Debug就会用 “ . ” 代替。
若查看指定内存处的内容,可以用“d 段地址:起始偏移地址 结尾偏移地址”的格式来查看。
按Enter键,D命令操作结束。
汇编中的ASSUME的使用
assume 最典型的用法:是指明变量与段寄存器的联系,比如 assume ds:data,它是告诉编译器以后所有在data段中定义的变量寻址时,使用ds作为段地址,但是它不对程序作任何事,你必须自己对ds赋值
为什么stack segment stack 后面要多加一个stack
1 | stack segment |
如果有了这个 stack,代码中就不再需要专门为堆栈段和堆栈指针赋值的那 3 条语句了,汇编程序会自动识别并把这两个寄存器初始化为正确的值。
关于masm5.0 显示 Unable to open input file
8.3格式的文件名:
EMU8086面板属性
-
decimal:十进制
disassembled machine code: 反汇编机器语言
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小蜗!
评论
ValineDisqus