8086汇编 Debug -d命令注意事项

时间:2021-10-24 01:07:57

在debug后必须接程序的完整名称 比如pro1.exe

然后 输入r 就可以查看当前 寄存器的情况,输入t就单步执行,需要注意的是 源码必须要有start标记 否则 t执行也不会 正确。

输入 d DS地址:偏移地址 就可以内存的数据了,需要注意的是 dw定义的是字型数据,一个字型数据占两个字节,分高位和低位 比如 ,0123H,就分01 高位,和 23低位。

在 -d命令 查询到的 数据就是  23 01 这样子的 。

附上上一篇文章的源码:(以及注释)

64.asm

assume cs:code,ds:data,ss:stack
;数据段
data segment
dw 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H
data ends
;栈段
stack segment
dw 0,0,0,0,0,0,0,0
stack ends

;代码段开始
;stack会被编译器编译成 栈段地址 需要把它负值到ss 还需要设置 sp偏移地址
code segment
start:mov ax,stack
mov ss,ax
mov sp,16
;同理 设置data 与ds
mov ax,data
mov ds,ax
;循环入栈
mov bx,0
mov cx,8
s:push [bx]
add bx,2
loop s

;循环出栈 把ds逆序
mov bx,0
mov cx,8
s0:pop [bx] ;栈顶弹出 到 ds:[bx]里面
add bx,2
loop s0

mov ax,4c00h
int 21h
code ends
end start

附上几个图片

8086汇编 Debug -d命令注意事项

8086汇编 Debug -d命令注意事项

8086汇编 Debug -d命令注意事项

t 单步执行继续调试,当出现,INT 21的时候 就执行完了,此时再去看 -d 就发现 数据段的 数据 通过 栈段 全部倒序了。

8086汇编 Debug -d命令注意事项