如何在debug环境下更改自变量的值并再次运行原程序

如何在debug环境下更改自变量的值并再次运行原程序

求表达式Y= a * X * X + b * X + d的值,已知a、b、d分别存放在dataa、datab、datad字节单元,X存放在TABLE字节单元,结果Y放入RESULT字单元。
程序:
data segment
dataa db 1
datab db 3
datad db 5
table db 2
result dw ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov al,table
mul al
mul dataa
cbw
mov bx,ax
mov al,table
mul datab
add bx,ax
mov al,datad
cbw
add bx,ax
mov result,bx
exit: mov ah,4ch
int 21h
code ends

end start

单步执行后的结果
如何在debug环境下更改自变量的值并再次运行原程序_第1张图片

在DEBUG下多次修改X的值,观察执行结果Y

G命令运行程序命令
命令格式: G[=起始地址]第一断点地址] 第二断点地址]…
调试过程中,可以利用G命令运行程序,观察结果的正确性,或者设置断点,.
利用G命令观察程序运行到某一位置是否正确,G命令最多可以设置10个断点,
当程序运行置断点时,停止执行,并显示当前所有寄存器和标志位的内容,以及
下一条将要执行的指令。
如果G命令无起始地址,则从当前CS:IP内容为开始运行。
根据此内容
更改内存单元中X的值
更改内存单元中X的值
根据前面的命令ip可知道,我们要再次执行0至26ip的命令

g命令
如何在debug环境下更改自变量的值并再次运行原程序_第2张图片
可见,修改成功

验算:1 * 3 * 3 + 3 * 3 + 5 = 1 * 16 + 7

你可能感兴趣的:(学习,大学)