汇编初学者的问题 就是怎么查看变量的值 知道这个我就可以自己学了。

书上给你一个程序 我编译不成功

.386
.model flat,stdcall
option casemap:none
.data
bVar byte 01H,1,10,100
wVar word 0102H,1000,100*100
dVar dword 01020304H,100000,1000000

.code
start:
mov al,bVar
mov ah,bVar+3
ret
end start

1.书上说用vc的调试程序查看数据区的内容 输入&bVar就会出变量的地址和值 我找不到这个调试程序啊 安装的是vc++6.0

2.是不是先ml a.asm
link a.obj
再运行a.exe后查看内存中bVar的值呢?

如果我的问题不清楚 麻烦请告诉我一个实例程序 我只想看到用vc查看到内存数据的改变就可以了

答对了在+分
有人会设 vc的汇编环境吗?

用MASM32的调试程序 我感觉还是比较方便的
比如有PrintDec 等函数(准确的说应该是宏)可以直接在调试面板中显示你想知道的寄存器值和指定内存地址的值
加上
include include\debug.inc
includelib lib\debug.lib
不过这是win32汇编
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-03
你使用bochs模拟器,然后使用调试模式执行。非常方便
第2个回答  2009-09-02
我没弄出来你说的那个书上说的方法,自己倒是试验出一个方法

1.
第一步:打开VC++
第二步:文件->打开
第三步:在文件类型里选所有文件
第四步:找到编译好的exe文件,双击打开
第五步:组建->开始调试->step into 然后无视提示框,点确定
第六步:右键单击工具栏把Memory和Registers点选上
第七步:
此时在最显眼的地方已经出现了类似这样的汇编代码(第五步的时候就出现了):
00401000 mov al,[00402000]
00401005 mov ah,byte ptr ds:[402003h]
0040100B ret
注意方括号里的数不是确定的!!!!
这时你要做的是复制第一个方括号里的数据(用Ctrl+C)
然后用Ctrl+V复制到Memory窗口的地址输入框里,回车
然后你就可以看到定义好的数据了
第八步:
按几次F11,按之前注意看Registers窗口里数据的变化(有变化的数据会变红)

这个VC++带的调试器不是很方便,RadASM带的OllyDBG挺不错的

2.
我的天啊,ml可真难用啊
ml /c /coff /nologo "a.obj" "a.asm"
link /SUBSYSTEM:WINDOWS /nologo /OUT:"a.exe" "a.obj"

我这个是在IDE上抄来的,LZ你看这些命令行不晕么?干嘛不下载个IDE?
相似回答