首页
社区
课程
招聘
[求助]一个基础的寻址问题求教
发表于: 2008-11-30 07:35 3329

[求助]一个基础的寻址问题求教

2008-11-30 07:35
3329
初学汇编,一直按照语法书上的格式来写程序。   偶然写一个程序,开始定义了一些字节数据 ;假设寄存器si=0,在程序中我写的 mov al,si+3  和mov al,[si+3]在DEBUG中是一样的,结果也一样,都是传的第4个字节数据。。。不知道有什么好的解释没有,希望理解深一点。

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
其实没什么。

8086/88,乃到386及所有IA32体系结构的CPU,都是没有 mov ax, si+3 这样的指令的。

所以对于某些汇编器,(在不引起歧义的情况下)碰到这样的指令,它就认为程序员的意图是 mov ax, [si+3],所以就给你替换了。

但有些汇编器,则会指出这样的写法不符合语法,比如NASM
2008-11-30 09:06
0
雪    币: 155
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
谢谢啊,原来如此,我一个晚上都在琢磨,以为和变量的地址运算是一样的 mov ax,var+3
2008-11-30 10:58
0
雪    币: 214
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呵呵 版主很勤快 2个小时
2008-12-3 11:34
0
游客
登录 | 注册 方可回帖
返回
//