. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
第一个程序
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
关于程序加载后cx的值问题(疑难杂症,高手请帮忙!!!)
[待解决]
回复[
4
次 ] 点击[
518
次 ]
liuxianming2001
[帖 主]
[ 发表时间:2008-11-16 17:24 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2008-09-03 00:18
第二版的91页倒数第三段说:Debug将程序从可执行文件加载入内存后,cx的值为程序的长度。
这毫无疑问!
但是当我用CV.EXE或TD.EXE将程序从可执行文件加载入内存后,cx的值为0
这是什么原因?
举个例子,有如下程序:
assume cs:codesg
codesg segment
start: mov ax,cx
mov ax,4c00h
int 21h
codesg ends
end start
当执行完mov ax,cx后,ax的值为多少?
debug中调试的值为程序长度,而CV.EXE或TD.EXE中调试的值为0
为什么?
debug 和 cv.exe有什么区别?
mouse
[第
1
楼]
[ 回复时间:2008-11-17 18:11 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34
debug 和 cv.exe有什么区别?
-------------
Debug将程序从可执行文件加载入内存后,cx的值为程序的长度--这个cx的意义是debug赋予的,包括ds等寄存器的意义。
cv是否设置cx有有意义是它本身的设定,从上面楼主的试验看它没有和debug有相同的设定。
作为不同的软件来说很正常。
就比如qq,我们可以自己设置热键,你的qq ctrl+alt+z(系统默认)可以弹出qq,我都可以自己设定成ctrl+q,作为同一个软件我们可以用不容的设定,对于不同的程序来说也可以不同的设定。cx代表程序长度的意义也是debug设定的产物。
liuxianming2001
[第
2
楼]
[ 回复时间:2008-11-22 07:13 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2008-09-03 00:18
按照一楼的说法,那程序
assume cs:codesg
codesg segment
start: mov ax,cx
mov ax,4c00h
int 21h
codesg ends
end start
在独立运行时,ax是随机了?因为其本身没去设置cx的初始值,即程序使用了未初始化的cx?
jjh15930929745
[第
3
楼]
[ 回复时间:2008-11-26 20:52 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:0
注册日期:2008-11-04 14:00
回复:[第2楼]
在独立运行时,ax是随机了?因为其本身没去设置cx的初始值,即程序使用了未初始化的cx?
------------------
那要看你用什么软件了!你说呢……
acool
[第
4
楼]
[ 回复时间:2008-11-27 20:15 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:49
信誉值:0
注册日期:2008-10-15 16:15
汇编书之说用debug调试程序,没有说用其他的啊。按照书上的做有好了。
有时候选择多了也不好啊 ^_^
需要登录后才能回帖 -->>
请单击此处登录
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved