gcc未声明的标识符" _asm"

时间:2014-10-15 03:13:50

标签: c++ c unix gcc gdb

我试图理解内存是如何工作的,以及每条指令如何分配内存。我也试图理解偏移和基指针的概念。我正在为英特尔处理器和MIPS做这个。我能够访问Visual Studio中的内存窗口,但是当我在UNIX上使用gcc和gdb时,我的代码上出现此错误 ![编译代码后] [1]

错误:使用未声明的标识符“_asm”    的 _asm

我在VISUAL STUDIO中没有出现此错误 这是我正在尝试运行的 (非常简单的代码)

void main()
{
	int quizint = 0x01000080;
	int n = 0xfffffff;
	int MIPSzint = 0x80000001;
	register int m = 3;
	register int p = 256;
	static int q = 0x7fffffff;
	static int r = 0x10000000;
	static int R = 0x8000000;
	_asm
	{
		start_loop:
			mov ebx, MIPSzint
			add ebx, -2
			mov ecx, quizint
			mov eax, n
			sub eax, q
			add eax, R
			mov edx, 1
			add edx, q
			add edx, 1
			add edx, n
			add R, -1
	}
} 

====>>> _asm 给了我错误。 问题是,我是否需要添加一些内容才能使其在gcc中运行?

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

如果您正在编译禁用GNU扩展,请使用__asm__。使用GNU扩展程序,您也可以使用asm_asm不支持gcc