bgtqpz 发表于 2013-8-5 20:43:06

求助

本帖最后由 bgtqpz 于 2013-8-5 20:45 编辑

我看小甲鱼的汇编视频教程第28集发现小甲鱼的编译器里的代码有的加了h有的没有加比如mov ax 0020h mov cx 12然后我把0020后面的h去掉用debug单步调试发现0020变成14了可后面的那个12却还是12这是为什么呢

ck329054222 发表于 2013-8-5 20:51:36

debug里面的数字都是16进制的。20h表示10进制的32,12h表示10进制的18,20转化为16进制就是14

bgtqpz 发表于 2013-8-5 21:03:39

但是后面的12没有加h在debug中依然是12啊

ck329054222 发表于 2013-8-5 21:05:25

本帖最后由 ck329054222 于 2013-8-5 21:10 编辑

bgtqpz 发表于 2013-8-5 21:03 static/image/common/back.gif
但是后面的12没有加h在debug中依然是12啊

默认是16进制的。你在debug里面写的12其实是10进制的18。这里的12实际上应该是12H。而在编译器里面默认是10进制,你如果要表示16进制的数,就要加上H,并且是要做相应的转换的

Dardy 发表于 2013-8-5 21:11:57

ck329054222 发表于 2013-8-5 21:05 static/image/common/back.gif
默认是16进制的。你在debug里面写的12其实是10进制的18。这里的12实际上应该是12H。而在编译器里面默认 ...

眼花缭乱了吧,你在debug里确认一下。

bgtqpz 发表于 2013-8-5 22:03:18

我确认了cx是000c

怡静 发表于 2013-8-6 12:20:38

加H的肯定是十六进制的,没有加就是十进制的,你可以用进制转换一下看看,就明白啦,

bgtqpz 发表于 2013-8-6 23:47:54

脑袋反应过来了c不就是12已经被转换成16进制了么,谢谢你们的回答
页: [1]
查看完整版本: 求助