主题:[讨论]从寄存器问题想起的
foka
[专家分:200] 发布于 2007-09-29 01:10:00
大家好,首先声明一点,我这学期才刚开始学汇编,感觉学得很吃力!因此想和各位老师交流下:si,di和[si],[di]有什么区别啊?还有( )这种为什么一会是地址,一会又是数值呢?
回复列表 (共21个回复)
11 楼
我是大喊三 [专家分:3010] 发布于 2007-10-10 00:15:00
好多指令没用到的,如果是在WINDOWS等保护模式下编程更是如此,很多东西不让你访问,端口,一些寄存器等等
12 楼
臭石头雪球 [专家分:23030] 发布于 2007-10-10 09:11:00
[quote]好多指令没用到的,如果是在WINDOWS等保护模式下编程更是如此,很多东西不让你访问,端口,一些寄存器等等[/quote]
的确如此
13 楼
foka [专家分:200] 发布于 2007-10-10 11:39:00
那有什么好的建议吗?
谢谢!
14 楼
foka [专家分:200] 发布于 2007-10-10 18:25:00
又有点问题了
mov ax,[si+8]中的8是十六进制吗?还是十进制???
15 楼
臭石头雪球 [专家分:23030] 发布于 2007-10-10 19:26:00
[quote]又有点问题了
mov ax,[si+8]中的8是十六进制吗?还是十进制???[/quote]
源代码里的数字,编译器都认为是十进制。如果你需要指定十六进制,请使用 h 后缀
16 楼
foka [专家分:200] 发布于 2007-10-10 20:31:00
我看题的有
mov ax,[si+0ah]
……
mov ax,[si+8]
……
mov ax,[si+6]
所以就有点疑问啊
17 楼
臭石头雪球 [专家分:23030] 发布于 2007-10-10 21:06:00
si+0ah 是十六进制的 0A
si+8
si+6 都是十进制
18 楼
foka [专家分:200] 发布于 2007-10-10 22:24:00
謝謝你的回答!
但不能給你評分了哦
19 楼
臭石头雪球 [专家分:23030] 发布于 2007-10-10 22:43:00
没关系,回答问题和灌水是最大的乐趣。。。
加分也是乐趣,不过是附加的乐趣,没有就算了,不影响我最大的乐趣。。。HOHO~~
20 楼
我是大喊三 [专家分:3010] 发布于 2007-10-11 01:43:00
[quote]又有点问题了
mov ax,[si+8]中的8是十六进制吗?还是十进制???[/quote]
老凶啊,不是我罗苏,什么进制转换的基础一定要有啊,要不怎么学下去呢?
本身一个数它没有什么进制的属性,所谓十进制,是逢十进一,每位表范围方法是0~9。十六进制是逢十六进一,每位表示范围是0~9,A,B,C,D,E,F。现在是8,都没进位,所以它本身所表示的数值含义并不会引起混淆,你可以说它是10进制也可以是16进制。不过象类似10这样的数就要注意了:比如有这样一条语句int 10h,如果你本意是要调10h(16进制)中断,但忘了加后面的"h",那就差远了,因为10h相当于十进制的16。一般填寄存器内容,寻址等,都是用16进制的格式,因为16进制每位刚好对应4个bit,在对齐呀,计算啊各方面非常方面。在计算机世界里,16进制好处多多。
我来回复