小弟不知道在这里发这个贴子对不对路,先放几天看看! int1:
__asm
{...}
...
int3:
{...}
.......... __asm
{
MOV AH,0x25
MOV AL,0x1
PUSH DS
MOV CX,CS
MOV DS,CX
MOV DX, OFFSET int1 ////错误
INT 0x21
POP DS
MOV AH,0x25
MOV AL,0x3
PUSH DS
MOV CX,CS
MOV DS,CX
MOV DX, OFFSET int3 /////错误
INT 0x21
POP DS
}编译时错误提示为:error C2443 :operand size conflict
急!!!!!!
能不能把两个标号的值先保存到两个变量,再把变量move进去,但是标号的(地址)值怎么取得?
或者,谁有其他的办法也行!
__asm
{...}
...
int3:
{...}
.......... __asm
{
MOV AH,0x25
MOV AL,0x1
PUSH DS
MOV CX,CS
MOV DS,CX
MOV DX, OFFSET int1 ////错误
INT 0x21
POP DS
MOV AH,0x25
MOV AL,0x3
PUSH DS
MOV CX,CS
MOV DS,CX
MOV DX, OFFSET int3 /////错误
INT 0x21
POP DS
}编译时错误提示为:error C2443 :operand size conflict
急!!!!!!
能不能把两个标号的值先保存到两个变量,再把变量move进去,但是标号的(地址)值怎么取得?
或者,谁有其他的办法也行!
short var;
int main()
{
__asm xchg ax,bl // C2443
__asm mov al,red // C2443
__asm mov al,BYTE PTR var // OK
}
__asm
{
start :
mov eax,1
mov ebx ,2
mov ecx ,offset start
......
}
应该这样写
lea eax,int1
move edx,eax
果然高,我也刚找到用lea的方法可以解决问题,呵呵!谢谢了!
还有,你的int21的建议我是知道的,thx anyway!
能给个联系方式吗?To all:
很满意,结贴了!