如何用debug查看变量表示的内存单元

时间:2022-06-13 01:18:15
比如定义sum  db  0
经过一段程序后sum中有了新值
请问如何通过debug查看sum这个变量代表的内存单元中的数据

我知道通过debuy可以察看0000:0000这样形式表示的内存单元
可是现在我并不知道sum所对应的物理地址啊
请问该怎么办

11 个解决方案

#1


sum是定义在数据段吧
知道数据段的地址就可以知道sum的位置了

#2


用-U命令,反汇编字节并显示相应的原语句。

查看相对应的偏移地址,然后用段地址和偏移地址计算出物理地址,再用-D命令,显示部分内

存的内容,来查看.

不对之处请原谅!!!

#3


呵呵!我初学汇编
能否具体讲下如何操作
下面是刚在这个论坛看到的一段代码
请问如何查看其中sum的值
datas segment
  sum dw ?
datas ends
codes segment
assume cs:codes,ds:datas
start: 
  mov ax,0
  mov bx,1 
  mov cx,50
next: 
  add ax,bx
  inc bx
  inc bx
  loop next
  mov sum,ax
  mov ah,4ch
  int 21h
codes ends 
end start

#4


Debug是简单的调试工具,不能查看变量。
你用命令u对照你写的代码,找到mov sum,ax响应的指令,看sum被替换成了什么(地址),再用命令d来看这个地址。

#5




datas segment 
  sum dw ? 
datas ends 
codes segment 
assume cs:codes,ds:datas 
start:
  mov ax,datas ;加入
  mov ds, ax   ;加入
  mov ax,0 
  mov bx,1  
  mov cx,50 
next:  
  add ax,bx 
  inc bx 
  inc bx 
  loop next 
  mov sum,ax 
  mov ah,4ch 
  int 21h 
codes ends  
end start 

#6


0B5B:0000  C4 09 : 这个就是sum的值
0B5B:0010  6E 05 17 03 6E 05 5D 05-01 01 01 00 02 FF FF FF                
另外在列表文件中也可以查看到

#7


我已经大概明白了!
请问有没有工具可以直接查看变量的!
比如OD什么的

#8


其实使用DEBUG -D 查看变量还是挺实用的。

#9


机子太慢了,传个图片要好久,看一下这个图就知道了:

如何用debug查看变量表示的内存单元

#10


谢谢给位 特别是dongyi940333 !
无以为报,只能多加分呢!
呵呵。

#11


学习了      楼主   谢楼主提问

#1


sum是定义在数据段吧
知道数据段的地址就可以知道sum的位置了

#2


用-U命令,反汇编字节并显示相应的原语句。

查看相对应的偏移地址,然后用段地址和偏移地址计算出物理地址,再用-D命令,显示部分内

存的内容,来查看.

不对之处请原谅!!!

#3


呵呵!我初学汇编
能否具体讲下如何操作
下面是刚在这个论坛看到的一段代码
请问如何查看其中sum的值
datas segment
  sum dw ?
datas ends
codes segment
assume cs:codes,ds:datas
start: 
  mov ax,0
  mov bx,1 
  mov cx,50
next: 
  add ax,bx
  inc bx
  inc bx
  loop next
  mov sum,ax
  mov ah,4ch
  int 21h
codes ends 
end start

#4


Debug是简单的调试工具,不能查看变量。
你用命令u对照你写的代码,找到mov sum,ax响应的指令,看sum被替换成了什么(地址),再用命令d来看这个地址。

#5




datas segment 
  sum dw ? 
datas ends 
codes segment 
assume cs:codes,ds:datas 
start:
  mov ax,datas ;加入
  mov ds, ax   ;加入
  mov ax,0 
  mov bx,1  
  mov cx,50 
next:  
  add ax,bx 
  inc bx 
  inc bx 
  loop next 
  mov sum,ax 
  mov ah,4ch 
  int 21h 
codes ends  
end start 

#6


0B5B:0000  C4 09 : 这个就是sum的值
0B5B:0010  6E 05 17 03 6E 05 5D 05-01 01 01 00 02 FF FF FF                
另外在列表文件中也可以查看到

#7


我已经大概明白了!
请问有没有工具可以直接查看变量的!
比如OD什么的

#8


其实使用DEBUG -D 查看变量还是挺实用的。

#9


机子太慢了,传个图片要好久,看一下这个图就知道了:

如何用debug查看变量表示的内存单元

#10


谢谢给位 特别是dongyi940333 !
无以为报,只能多加分呢!
呵呵。

#11


学习了      楼主   谢楼主提问