mov [si+08h],'$' ;这句出现问题operand must have size
这条传送指令,编译软件不能确定是8位数的,还是16位数的。
应该改成如下:
mov BYTE PTR [si+08h],'$' ;说明是字节传送
另外,还有:WORD PTR。说明是 字 传送。
do_swap(v1,v2)前的return不想去掉也不行,因为编译通不过。除非你分为两行:else {do_swap(v1, v2); return;}
改成这样吧:
#include <iostream>
using namespace std;
template<class T>
void do_swap(T& v1,T& v2)
{
T tmp=v1;
v1=v2;
v2=tmp;
}
template<class T>
bool swap1(T& v1,T& v2)
{
if(v1==v2)
{
cout<<"两数相等"<<endl;
return false;
}
else
{
do_swap(v1,v2);
return true;
}
}
int main()
{
int a,b;
cin>>a>>b;
if (swap1(a,b))
cout<<a<<endl<<b<<endl;
return 0;
}
以上就是关于汇编语言中出现operand must have size是什么问题,我做的是冒泡程序全部的内容,包括:汇编语言中出现operand must have size是什么问题,我做的是冒泡程序、一个C++的程序编译错误:none of 2 overload have a best conversion、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)