怎么在汇编中引用c语言的全局变量

c语言中嵌入的汇编代码,怎样去应用c中定义的全局变量?
x86汇编
接着补充:
是在c的代码中嵌入的汇编,如下:
……
__asm
{
mov eax,WinexecAddr
……
}
……
其中WinexecAddr是个函数的入口地址,直接mov一个地址值的话程序运行ok,
但这样引用WinexecAddr这个变量,运行结果出错了。求教

第1个回答  2009-07-27
最简单的诶办法就是 引用伪变量。
比如:
unsigned int uni;

_AX=uni;
然后在汇编中直接 取 AX 的值就是了。
第2个回答  2009-07-22
用例子说明好了:
/*democ.c*/
extern void display(void);
main()
{
display();
}

;demoasm.asm
.model small
.data
string db 'Hello World!$'
.code
public _display
_display proc
mov ah,9
mov dx,offset string
int 21h
ret
_display endp
end本回答被网友采纳
第3个回答  2009-07-27
定义在主函数的外边,独占一行。然后再想要引用它的地方直接引用就可以了。

怎么在汇编中引用c语言的全局变量
最简单的诶办法就是 引用伪变量。比如:unsigned int uni;∶_AX=uni;然后在汇编中直接 取 AX 的值就是了。

C语言和汇编怎样引用对方定义的变量?
C中要使用汇编里面函数的话 需要在汇编里面使用export xxx 导出函数标号 C中加extern xxx汇编要使用C里面的函数的话 需要在汇编里使用import xxx 导入外部标号

c语言里如何调用汇编里的变量
用汇编语言写个call,c语言里按照这个call约定调用这个call,就可以调用call里面的变量了。

求助:在GCC嵌入汇编中如何使用C语言定义的
④ 汇编语言中使用逗号“,”作为指令操作数的分隔符,所以如果在C语言中使用逗号必须用圆括号括起来。如,__asm {ADD x, y, (f(), z)}。⑤ 内联汇编语言中的寄存器名被编译器视为C 或C++语言中的变量,所以内联汇编中出现的寄存器名不一定和同名的物理寄存器相对应。这些寄存器名在使用前必须声...

汇编语言是怎么调用c语言的程序的?
1、 C程序调用汇编程序 汇编程序的设计要遵守ATPCS(ARM—Thumb Procedure Call Standard),保证程序调用时参数的正确传递。在汇编程序中使用EXPORT 伪操作声明本程序,使得本程序可以被别的程序调用。在C程序使用extern声明该汇编程序。下面是一个C程序调用汇编程序的例子。其中汇编程序strcopy实现字符串复制功能...

汇编中内联c语言
不能!编译分好几个阶段, 拿 gcc 来说 ,大体上如下:展开宏(预处理)把 c 翻译成 汇编 把汇编翻译成机器码 链接 因此 c 能内联汇编, 汇编不能内联 c。如果说 汇编中一定要使用 c 函数, 把 c 函数写在 c文件里,然后在 汇编文件里调用不就得了?你非弄什么 内联吗?

如何用汇编实现C语言函数调用
就是你把编译为机器码的程序用反编译工具翻译成汇编,然后分析一下就好了,C语言的汇编还是比较简单……比如这个函数:int func(int a, int* b) { \/\/ float要用到CPU的FPU,指令记不得,要查下 \/\/ 为了简单就改为int printf("a = %d, b = %d\\n", a, *b);return a;} 编译成机器码...

汇编怎样调用C
在C程序中允许直接编写汇编语言代码,这称作嵌入汇编。C程序中嵌入汇编后可以无分号(C语言的语句以分号结束,汇编语句是C语言中唯一以换行结束的语句),以关键词ASM张一个嵌入汇编指令,如需多个ASM语句,可以将它们放在花括号内。如,ASMMOVAX,DX\/ 注释 \/ ASM PUSHAX}\/ 注释 \/ C语言允许嵌入四类汇编...

单片机C语言中的全局变量和中断问题,大神进
在最前面加一行:extern char a;在那个文件里面就可以直接用了。如果多个文件会用到,就多个文件都写这么一行。也可以了解一下头文件。新建main.h, 内容如下:ifndef _MAIN_H_define _MAIN_H_extern char a;endif _MAIN_H_之后在需要用到a变量的文件内在最前面 include "main.h"...

汇编语言入门四:打通C和汇编语言
在C程序中,我们使用全局变量x、y和z。这些变量分别占用4字节内存空间。在汇编语言中,我们可以按照上次介绍的方法为它们分配内存空间。程序中包含三个全局变量,仅返回0,这与C语言程序是等价的。在理论层面,C编译器能够将C代码转换为汇编代码,然后由汇编器编译为可执行文件。事实上,许多C编译器正是...

相似回答