汇编语言程序:为什么用debug调试时,-g运行后,-d不能显示最终结果,-d13cb才能显示结果?

我用汇编语言编了一个程序,用debug调试时,cs寄存器地址是13CD,而DS寄存器地址是13CB,-g后,用-d时,显示不了程序的结果,-d13cb才能看见结果,这是为... 我用汇编语言编了一个程序,用debug调试时,cs寄存器地址是13CD,而DS寄存器地址是13CB,-g后,用-d时,显示不了程序的结果,-d13cb才能看见结果,这是为什么,怎么样才能做到-d直接看见最后的结果,源程序如下:data segment
NUM db 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
result db ?

data ends

code segment
main proc far
assume cs:code,ds:data
start:push ds
mov ax,0
push ax
mov ax,data
mov ds,ax

LEA SI,[NUM]
mov CL,16
step1:
mov DL,[SI]
mov AL,DL
mov BL,2
CBW
div BL
CMP AH,1
JE step2
JNE step3
step2:
mov [SI+10H],DL

JMP step3
step3:INC SI
LOOP step1

ret
main endp
code ends
end start
非常感谢!!!
展开
 我来答
鲲鹏展翅LHY
2007-10-25 · TA获得超过2637个赞
知道小有建树答主
回答量:642
采纳率:0%
帮助的人:961万
展开全部
直接用-g命令执行时,要执行完RET指令才结束程序,但执行RET指令后,会将使得本程序的各个段的地址发生变化,无法定位到程序中原来数据段的值。

建议你在使用-g命令执行时,最好要找到断点地址,比如此题的断点地址为RET指令所在的偏移地址0029H,所以应该使用命令-g=0 0029执行,这样不执行RET指令,你就可以用-d 0看结果,而不用在d命令后加数据段的段地址了。你试试看。
baitang3671b
2007-10-24 · TA获得超过5040个赞
知道大有可为答主
回答量:4421
采纳率:31%
帮助的人:1098万
展开全部
-d后面要跟地址才能显示
单纯的-d是显示当前地址的内容,不一定是你需要的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式