首页
社区
课程
招聘
[求助]VC6 MOV指令的编译问题
发表于: 2007-5-13 16:04 5553

[求助]VC6 MOV指令的编译问题

2007-5-13 16:04
5553
问题:
(1)
vc6编译
mov ECX,[0X4FC726]

实际确编译成了mov ecx,4fc726
我要把4fc726内存单元的值付给ecx怎么写(一条语句的)??

(2)
void MyTextOut( char  msg[] )
{
        _asm
                {
                        mov ecx, msg
                。。。。                               
                }
        return;
}
这个时候是ecx中是要显示的字符的地址,而如果函数定义成void MyTextOut( char*  msg ),则变成了msg的地址了,看来数组和指针还是有很大的不同的。

还有call [0Xc87634]也编译不过,然到一定要写成call dword ptr ds:0xc87634吗?
多谢!

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1946
活跃值: (248)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
2
把地址的值赋值给一个变量,用变量来代替这个值就好了,VC这里生成代码时会把这种代码认错。
2007-5-13 16:48
0
雪    币: 251
活跃值: (1217)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看来是这样的,特别是用lea取一个变量的地址的时候,靠!vc怎们能这样呢?!

多谢!
2007-5-13 20:11
0
雪    币: 433
活跃值: (176)
能力值: ( LV13,RANK:1250 )
在线值:
发帖
回帖
粉丝
4
要用立即数表示地址也可以,只不过要写成:

mov ECX,ds:[0x4FC726]

这个问题在王爽的《汇编语言》上有讲到,微软的汇编器一向如此
2007-5-13 20:42
0
雪    币: 225
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
既然vc6跛脚那可以帮它矫正一下
MOV ECX,MSG
MOV ECX,[ECX]
2007-5-19 11:09
0
游客
登录 | 注册 方可回帖
返回
//