首页
社区
课程
招聘
[求助]汇编请教
发表于: 2009-4-7 13:22 6543

[求助]汇编请教

2009-4-7 13:22
6543
mov eax,403045h;
mov cx,[eax];



mov cx,[403045h];

是不是一样的?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (24)
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
在asola asm中是一样的.如果是kasm的话可能无法确定这2个字节值的地址是在堆栈内存中还是在代码内存中.
2009-4-7 13:24
0
雪    币: 268
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

mov eax,403045h;使eax装有值403045h(十六进制)
mov cx,[eax];把位于内存地址eax的word大小的值(403045)移入cx寄存器。

第二句话应该是错的吧
2009-4-7 13:47
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你太没自信心.

OK.我可以免费给你自信心:
两个字节不能表达403045h个东西.
所以是错误
2009-4-7 13:55
0
雪    币: 268
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵,谢谢啦

自己看书上的,但是书上好像写矛盾了,所以搞不懂了
2009-4-7 13:59
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
一样,反正操作的都是内存地址,我没有看出错误
.386
.model flat,stdcall
option casemap:none
.data

.code
start:
mov eax,403045h
mov cx,[eax]
end start
masm编译通过
2009-4-7 19:23
0
雪    币: 155
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
这和C的指针式一回事,指针本身和指针指向的内容不要混淆了。LZ再思考下
2009-4-7 19:38
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
大家不要只看第一帖.第三帖才是重点.
2009-4-7 19:54
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
第二句在调试器里正确,在编译器里错误
2009-4-7 23:13
0
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
mov eax,403045h   ;立即寻址,403045h传进eax  执行后eax里是403045h
mov cx,[eax]      ;寄存器间接寻址  也就是把eax里的ds:403045h存储空间里的
                      操作数存入cx  如果ds:403045h里是12h(或者EFh)  执行后cx里就是
                      12h(或 者EFh)   如果是mov cx,eax  会出错



mov cx,[403045h] ;直接寻址  就是把ds:403045h里的操作数传入cx  如果ds:403045h里和上
                    面的的ds:403045h没变化  仍是12h(或者EFh)  执行后cx里就是
                    12h(或者EFh)

所以说:上面两个目的都是将403045h存储空间里的操作数(12或者EF)传入cx并达到,不计较eax的变化的话,基本是一样。

以上的10和EF只是临时凑来说题的。(大家应该理解这个的)
我也初学者,自己的看法只供参考!

上面的回复当时侧重于帖主对寻址方式的不彻底了解,但我在例举说明时不够严谨,看到书呆版主对我的回复的肯定,为了不产生误导,就补充一点,愿回复就不动了。。。

我在例举mov cx,[eax]时只简单地举了12,严谨来说应该是:以EAX里的ds:403045h为地址取字(双字节)遵循低低高高的规则传送进CX,也就是说:把ds:403045h和ds:403046h两个存储空间里的数据(信息)传给CX,如果是mov ch,[eax]或者mov cl,[eax]的话,那就只传ds:403045h一个字节信息,是mov ECX,[eax]的话,就以ds:403045h为地址,传送ds:403045h,ds:403046h,ds:403047h,ds:403048h双字(四个字节)内容进ECX。。。
mov cx,[403045h],也是如此。。。就。。。了。

我觉得帖主有疑惑,还是对寻址方式没掌握好。究竟为什么传字节,字,双字,不属于此帖内容,就不费话了。。。
2009-4-8 23:27
0
雪    币: 247
活跃值: (42)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
mov eax,403045h;
mov cx,[eax];



mov cx,[403045h];

是不是一样的?

不一样
2009-4-8 23:41
0
雪    币: 111
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
是一样的,至于四楼说两个字节不能表达403045h,那么请你先看看他的寻址方式,是直接寻址。

是把403045h和403046h两个字节的内容送到cx

而不是把403045h这个立即数送到cx

这跟两个字节能不能表达403045h有何关系?
2009-4-9 09:07
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
你没发现我们对第三贴的感悟有区别吗?
就像看AV片.你就只盯着那点.那跟看动物世界有何区别.
2009-4-9 14:21
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
                       精辟!        果然精辟...
2009-4-9 17:47
0
雪    币: 251
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
我感觉基本上是一样的,得看上下文了
2009-4-9 20:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
一样的...恩..
2009-4-10 10:16
0
雪    币: 442
活跃值: (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
一般的都是一样的吧

高深的我就不清楚了
2009-4-10 10:31
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
偶是新手,觉得应该是一样的,有条件的可以编译调试一下啊
2009-4-11 23:47
0
雪    币: 217
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
mov eax,403045h;
mov cx,[eax];    //EAX   放得进  CX  ?????
2009-4-12 07:29
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
20
[QUOTE=菜鸟乱飞;602893]那
mov eax,403045h;使eax装有值403045h(十六进制)
mov cx,[eax];把位于内存地址eax的word大小的值(403045)移入cx寄存器。

第二句话应该是错的吧[/QUOTE]

楼主对“寻址方式”的概念还不理解,理解了此问自然就解开了。

[QUOTE=八千里路;603823]mov eax,403045h   ;立即寻址,403045h传进eax  执行后eax里是403045h
mov cx,[eax]      ;寄存器间接寻址  也就是把eax里的ds:403045h存储空间里的
                      操作数存入cx  如果ds:403045...[/QUOTE]

正解。除EAX的变化外,二者作用是“相同”的。
2009-4-12 09:28
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
贴主的

把位于内存地址eax的word大小的值(403045)移入cx寄存器

这句话很重要.

大家要深刻领会.

否则就犯修正主义错误.
注意这里不是()的作用是什么.一定要分清楚.否则革命路线就错误.
2009-4-12 10:58
0
雪    币: 723
活跃值: (81)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
22
不清楚不了解的人98%是不清楚下面这 2 个概念:

1、operands size
2、address size

以及这 2 个概念在 processor 不同模式(real、protected、64bit)下的应用。
2009-4-12 11:51
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
靠.鸟文都来了.问题更复杂了.
不懂洋文.决定飘过.88
2009-4-12 11:54
0
雪    币: 723
活跃值: (81)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
24
连这些鸟文意思你都不懂,那你就只能永远都是菜鸟
2009-4-12 11:59
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
对.我就是传说中永远的菜鸟.
再次88
2009-4-12 12:03
0
游客
登录 | 注册 方可回帖
返回
//