搜索
编程论坛
→
开发语言
→
『 汇编论坛 』
→ 在下面的语言中招一个错误!
标题:
在下面的语言中招一个错误!
只看楼主
学习的孩子
等 级:
新手上路
帖 子:7
专家分:0
注 册:2009-9-13
结帖率:
50%
楼主
已结贴
√
问题点数:20 回复次数:7
在下面的语言中招一个错误!
# include<stdio.h>
void main()
{
int xl,nl,yl;
_asm
{ mov nl,2000
mov yl,1000
mov eds,nl
mov ebx,yl
mov eax,[ebx]
mov xl,eax
}
printf("xl=%d\n",xl);
}
搜索更多相关主题的帖子:
语言
中招
2009-09-19 16:33
东海一鱼
等 级:
贵宾
威 望:
48
帖 子:757
专家分:4760
注 册:2009-8-10
第
2
楼
得分:0
以下是引用
学习的孩子
在2009-9-19 16:33的发言:
# include
void main()
{
int xl,nl,yl;
_asm
{ mov nl,2000
mov yl,1000
mov eds,nl
mov ebx,yl
mov eax,[ebx]
mov xl,eax
}
printf("xl=%d\n",xl);
}
mov eds,nl //??????!!!!
举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-09-19 17:13
学习的孩子
等 级:
新手上路
帖 子:7
专家分:0
注 册:2009-9-13
第
3
楼
得分:0
回复 2楼 东海一鱼
mov eds,nl 和 mov ebx,yl 一样的作用吗啊??
2009-09-20 10:54
swp160108
等 级:
论坛游民
威 望:
4
帖 子:63
专家分:98
注 册:2008-11-10
第
4
楼
得分:7
eds 是什么寄存器???
2009-09-20 14:32
学习的孩子
等 级:
新手上路
帖 子:7
专家分:0
注 册:2009-9-13
第
5
楼
得分:0
回复 4楼 swp160108
是哦!!没有eds咯 ,谢了我知道咯 呵呵
2009-09-20 16:01
学习的孩子
等 级:
新手上路
帖 子:7
专家分:0
注 册:2009-9-13
第
6
楼
得分:0
回复 4楼 swp160108
# include<stdio.h>
void main()
{
int xl,nl,yl;
_asm
{ mov nl,2000
mov yl,1000
mov ds,nl
mov ebx,yl ----------说是操作数冲突!!!!
mov eax,[ebx]
mov xl,eax
}
printf("xl=%d\n",xl);
还是有一个错误 咋办??
2009-09-20 16:15
东海一鱼
等 级:
贵宾
威 望:
48
帖 子:757
专家分:4760
注 册:2009-8-10
第
7
楼
得分:7
mov ebx,yl 没有问题,
实际上还是上一句:mov ds,nl有问题。
这好像是C编译器的通病。
mov ds,nl //因为你的nl定义为int,在32位系统下int为4字节值32位,而段寄存器ds是16位的。
//所以数据尺寸不匹配。
mov eax,nl
//数据尺寸匹配
mov ds,ax
//数据尺寸匹配,
舍去了高16位
。
所以不管你本意如何,单从语法上讲这样没有问题
举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2009-09-20 18:47
学习的孩子
等 级:
新手上路
帖 子:7
专家分:0
注 册:2009-9-13
第
8
楼
得分:0
回复 7楼 东海一鱼
谢了!!!
呵呵呵
我是一个学生刚学汇编
以后还有好多问题请多多帮助咯!!!
2009-09-22 13:00
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-286209-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.230297 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved