如何运行汇编程序

  1. 编译 mul.asm 文件:

    masm mul.asm

  2. 链接 mul.obj 文件:

    link mul 或者 link mul.obj

  3. 运行 mul.exe 文件:

    mul 或者 mul.exe

设置vscode中调试汇编程序

image-20220806180441031

DOSBOX中debug常用指令的使用

操作符
r 查看寄存器中的内容
d 查看内存中的内容
t 执行CS:IP处的指令
q 退出debug

用D命令查看内存中的内容

以内存10000H处的内容为例,用“d 段地址:偏移地址”的格式来查看

D命令

图中
左边,是每行的起始地址。
中间,是指定地址开始的128个单元的内容,用16进制的格式输出,每行输出从16的整数倍的地址开始,最多输出16个单元的内容。
右边,是每个单元中的数据对应的ASCII码字符,当数据没有对应的ASCII字符时,Debug就会用 “ . ” 代替。

若查看指定内存处的内容,可以用“d 段地址:起始偏移地址 结尾偏移地址”的格式来查看。

按Enter键,D命令操作结束。

汇编中的ASSUME的使用

assume 最典型的用法:是指明变量与段寄存器的联系,比如 assume ds:data,它是告诉编译器以后所有在data段中定义的变量寻址时,使用ds作为段地址,但是它不对程序作任何事,你必须自己对ds赋值

为什么stack segment stack 后面要多加一个stack

1
2
3
4
5
6
7
8
stack segment
dw 80h dup(0)
stack ends
code segment
mov ax,stack
mov ss,ax
mov sp,100h
. . . . . .

如果有了这个 stack,代码中就不再需要专门为堆栈段和堆栈指针赋值的那 3 条语句了,汇编程序会自动识别并把这两个寄存器初始化为正确的值。

关于masm5.0 显示 Unable to open input file

img

8.3格式的文件名:

img

EMU8086面板属性

  • 20

  • img

    decimal:十进制

    disassembled machine code: 反汇编机器语言