汇编语言嵌入c语言在codeblocks编译器下应该怎么写
asm{MOVAL,2MOVDX,0xD007OUTAL,DX}我这样写编译器不通过。。。。。。。。能否帮我看一下再有能否用汇编语言嵌入c语言的程序提交acm题那编译器给...
asm
{
MOV AL, 2
MOV DX, 0xD007
OUT AL, DX
}
我这样写编译器不通过。。。。。。。。
能否帮我看一下 再有能否用汇编语言嵌入c语言的程序提交acm题
那编译器给出的警告: error: 'asm' was not declared in this scope 这个是什么意思啊大侠能否给以解答 展开
{
MOV AL, 2
MOV DX, 0xD007
OUT AL, DX
}
我这样写编译器不通过。。。。。。。。
能否帮我看一下 再有能否用汇编语言嵌入c语言的程序提交acm题
那编译器给出的警告: error: 'asm' was not declared in this scope 这个是什么意思啊大侠能否给以解答 展开
3个回答
展开全部
你要是在vc中写内联汇编 格式应该是:
_asm
{
MOV AL, 2
MOV DX, 0xD007
OUT AL, DX
}
或者:
_asm MOV AL, 2
_asm MOV DX, 0xD007
_asm OUT AL, DX
另外你想在acm题中嵌入汇编 那要看它测试的linux服务器(我听一参加acm的同学说acm用的是solaris的环境)上的编译器是否支持内联汇编。codeblocks那个编译器不太了解,反正gcc是支持的。但你不能用intel的指令集了,要用摩托罗拉的,比如MOV要写为MOVL,eax要写为%eax 等等。
所以在不了解他使用的平台和linux下汇编的用法时建议最好不要在程序中嵌入汇编代码。
error: 'asm' was not declared in this scope
就是这个编译器不支持你这么嵌汇编。就没有asm这个关键字。
刚才在codeblocks的官网查了下发现人家说的很明白:
Imports MSVC projects and workspaces (NOTE: assembly code not supported yet) 支持VC工程导入但注意:汇编代码现在还不支持
(详见http://www.codeblocks.org/features)
所以你不要再试了,人家压根就不支持汇编
_asm
{
MOV AL, 2
MOV DX, 0xD007
OUT AL, DX
}
或者:
_asm MOV AL, 2
_asm MOV DX, 0xD007
_asm OUT AL, DX
另外你想在acm题中嵌入汇编 那要看它测试的linux服务器(我听一参加acm的同学说acm用的是solaris的环境)上的编译器是否支持内联汇编。codeblocks那个编译器不太了解,反正gcc是支持的。但你不能用intel的指令集了,要用摩托罗拉的,比如MOV要写为MOVL,eax要写为%eax 等等。
所以在不了解他使用的平台和linux下汇编的用法时建议最好不要在程序中嵌入汇编代码。
error: 'asm' was not declared in this scope
就是这个编译器不支持你这么嵌汇编。就没有asm这个关键字。
刚才在codeblocks的官网查了下发现人家说的很明白:
Imports MSVC projects and workspaces (NOTE: assembly code not supported yet) 支持VC工程导入但注意:汇编代码现在还不支持
(详见http://www.codeblocks.org/features)
所以你不要再试了,人家压根就不支持汇编
展开全部
#include <iostream>
using namespace std;
int main() {
int a=10, b;
// the asm code is : b = a
asm ("movl %1, %%eax;\
movl %%eax, %0;"
:"=r"(b) /* output */
:"r"(a) /* input */
:"%eax" /* clobbered register */
);
cout << b << endl;
return 0;
}
using namespace std;
int main() {
int a=10, b;
// the asm code is : b = a
asm ("movl %1, %%eax;\
movl %%eax, %0;"
:"=r"(b) /* output */
:"r"(a) /* input */
:"%eax" /* clobbered register */
);
cout << b << endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
汇编语言嵌入c语言在codeblocks编译器下应该怎么写"相关的详细问题如下:RT,我想知道:汇编语言嵌入c语言在codeblocks编译器下应该怎么写
===========突袭网收集的解决方案如下===========
解决方案1:
。。。。, 0xD007
OUT AL。, DX
}
我这样写编译器不通过。asm
{
MOV AL, 2
MOV DX
解决方案2:
asm'那编译器给出的警告: ': error
解决方案3:
_asm MOV AL,eax要写为%eax 等等, 0xD007
_asm OUT AL,比如MOV要写为MOVL:
_asm
{
MOV AL, DX
}
或者; was not declared in this scope
就是这个编译器不支持你这么嵌汇编。但不能用intel的指令集了, DX
另外,想在acm题中嵌入汇编 那要看它测试的linux服务器(我听一参加acm的同学说acm用的是solaris的环境)上的编译器是否支持内联汇编:
Imports MSVC projects and workspaces (NOTE。codeblocks那个编译器不太了解, 2
_asm MOV DX。
刚才在codeblocks的官网查了下发现官方说的很明白, 2
MOV DX你要是在vc中写内联汇编 格式应该是,反正gcc是支持的, 0xD007
OUT AL。就没有asm这个关键字.codeblocks.org/features)
所以不要再试了: 'asm'.codeblocks://www://www.org/features" target="_blank">http: assembly code not supported yet) 支持VC工程导入但注意:汇编代码现在还不支持
(详见
error。
===========突袭网收集的解决方案如下===========
解决方案1:
。。。。, 0xD007
OUT AL。, DX
}
我这样写编译器不通过。asm
{
MOV AL, 2
MOV DX
解决方案2:
asm'那编译器给出的警告: ': error
解决方案3:
_asm MOV AL,eax要写为%eax 等等, 0xD007
_asm OUT AL,比如MOV要写为MOVL:
_asm
{
MOV AL, DX
}
或者; was not declared in this scope
就是这个编译器不支持你这么嵌汇编。但不能用intel的指令集了, DX
另外,想在acm题中嵌入汇编 那要看它测试的linux服务器(我听一参加acm的同学说acm用的是solaris的环境)上的编译器是否支持内联汇编:
Imports MSVC projects and workspaces (NOTE。codeblocks那个编译器不太了解, 2
_asm MOV DX。
刚才在codeblocks的官网查了下发现官方说的很明白, 2
MOV DX你要是在vc中写内联汇编 格式应该是,反正gcc是支持的, 0xD007
OUT AL。就没有asm这个关键字.codeblocks.org/features)
所以不要再试了: 'asm'.codeblocks://www://www.org/features" target="_blank">http: assembly code not supported yet) 支持VC工程导入但注意:汇编代码现在还不支持
(详见
error。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询