|
主题 : : 为什么我在Debug中用A输入汇编命令时,直接赋值11316出错?(P48,问题3.4) [已解决] |
回复[ 7次 ]
点击[ 449次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2008-11-26 08:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-06-04 14:46 |
第3章的P48,问题3.4,
我输入
mov ax,1000H
和 mov ax,11316似乎都出错?
好像mov ax,1000H填写 mov ax,1000才是对的?
而且,不能直接给ax赋值10进制的数字? | | |
|
|
|
|
[第1楼]
[ 回复时间:2008-11-26 10:49 ]
[引用]
[回复]
[ top ] | |
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07 |
|
|
|
|
|
[第2楼]
[ 回复时间:2008-11-26 10:50 ]
[引用]
[回复]
[ top ] | |
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07 |
多看两遍和联系实验一,debug可是很有用的,没有debug根本就分析不了汇编了~ | | |
|
|
|
|
[第3楼]
[ 回复时间:2008-11-26 11:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-06-04 14:46 |
debug下默认是十六进制的数据。
------------------
请教:
那么我输入P48,问题3.4的程序的时候,
是不是应该输成下面的样子,而不能够按照书上原来的语句进行输入?
mov ax,1000(mov ax,1000H输入出错)
mov ds,ax
mov ax,2c34(mov ax,11316输入出错)
... | | |
|
|
|
|
[第4楼]
[ 回复时间:2008-11-26 14:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:12
信誉值:0
注册日期:2008-11-24 18:10 |
debug默认是16进制
楼主输入的实际是11316H,属于溢出错误,debug会报错 | | |
|
|
|
|
[第5楼]
[ 回复时间:2008-11-26 14:28 ]
[引用]
[回复]
[ top ] | |
荣誉值:472
信誉值:12
注册日期:2007-10-16 15:34 |
我们平常使用的时候都是默认十进制的,我们去买东西不能说“10块钱(十进制的啊)” 呵呵,开个玩笑。
所以书上没有指名进制的情况也也都是十进制的,而用到十六进制的时候就需要说明了。比如实验一 2实验任务(1)中的表示。
在debug下把后面的H省略就可以了(先输入机器码,然后用u命令查看也能发现这个问题,这是不需要问别人而自己通过实践摸索的方式,可以尝试多用),用a命令输入的时候参考2.49.
debug对学习汇编非常重要,不仅是调试程序,还是验证自己方法的利器。尤其是对刚学debug,一定要多用、熟练。尽量的用debug验证自己的想法。 | | |
|
|
|
|
[第6楼]
[ 回复时间:2008-11-26 17:45 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-06-04 14:46 |
debug默认是16进制
楼主输入的实际是11316H,属于溢出错误,debug会报错
------------------
回复:明白了,谢谢!
看起来 abob 说的时候,我是没有反应过来。
记得书上曾经写了一句,说十进制后面不加任何东西,16进制后跟字母H,二进制后跟字母B。
debug默认是16进制,所以,就像yinxd6112说的一样,debug把11316当成了16进制,超出ax的长度,溢出错误。
而如果用编译器编译的话,就可以按照正常的程序来写了,
debug就是个调试的工具,而不是用来编程的。。。
------
感谢各位。 | | |
|
|
|
|
[第7楼]
[ 回复时间:2008-11-26 17:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:1
注册日期:2008-06-04 14:46 |
此贴由 贴主 于 [ 2008-11-26 17:46 ] 结贴。 结贴原因:问题已解决 | | |