汇编语言中,如何利用debug命令,查看“Hello World”字符串所在的内存地址,使用debug工具将“W”改'w'
程序如下,求debug加载程序后的详解操作,我是菜鸟。datasegmentmsgdb'HelloWorld','$'dataendscodesegmentassumed...
程序如下,求debug加载程序后的 详解操作,我是菜鸟。
data segment
msg db 'Hello World','$'
data ends
code segment
assume ds:data,cs:code
main proc far
mov ax,data
mov ds,ax
lea dx,msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
main endp
code ends
end main 展开
data segment
msg db 'Hello World','$'
data ends
code segment
assume ds:data,cs:code
main proc far
mov ax,data
mov ds,ax
lea dx,msg
mov ah,9
int 21h
mov ax,4c00h
int 21h
main endp
code ends
end main 展开
1个回答
展开全部
恩,你知道在8086里地址是段地址:偏移地址
而实际地址=段地址*10h+偏移地址吧。
如果是复杂的可以这样:
debug后;
u;显示32字节的内容,这时你就能看到差不多是这样的东西:
mov ax,数字1
mov ds,ax
lea dx,数字2
mov ah,9
int 21h
mov ax,4c00h
int 21h
他还你写的程序是对应的,其中你根据原来的程序,可以看到数字1是data,数字1即为data的段地址,这样你就得到一个段地址了,
然后看到数字2那对应着msg,数字2其实表示的是偏移地址
那么h...这个字符串的地址就是=数字1:数字2
然后用:e 数字1:数字2(或者 d 数字1:数字2)来显示这个地方的东西,至于e和d表示什么,以及怎么操作,你翻一下你的汇编书的debug那一节会有。
其实你这样写那数字2一定是0000的.
而实际地址=段地址*10h+偏移地址吧。
如果是复杂的可以这样:
debug后;
u;显示32字节的内容,这时你就能看到差不多是这样的东西:
mov ax,数字1
mov ds,ax
lea dx,数字2
mov ah,9
int 21h
mov ax,4c00h
int 21h
他还你写的程序是对应的,其中你根据原来的程序,可以看到数字1是data,数字1即为data的段地址,这样你就得到一个段地址了,
然后看到数字2那对应着msg,数字2其实表示的是偏移地址
那么h...这个字符串的地址就是=数字1:数字2
然后用:e 数字1:数字2(或者 d 数字1:数字2)来显示这个地方的东西,至于e和d表示什么,以及怎么操作,你翻一下你的汇编书的debug那一节会有。
其实你这样写那数字2一定是0000的.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询