滤清器厂家
免费服务热线

Free service

hotline

010-00000000
滤清器厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

C语言和汇编语言的混合编程的方法介绍

发布时间:2020-07-21 19:27:05 阅读: 来源:滤清器厂家

一、混合编程的方法主要有以下几种:(1)独立编写C语言程序和汇编程序,分别编译形成各自的目标代码块, 然后用连接器将两种模块连接起来。(2)直接在C/C++程序中嵌入汇编语句块。(3)对C/C++程序进行编译生成相应的汇编程序,手工对生成的汇编程序进行修改。(4)在C/C++程序中使用汇编语言的变量、常数、函数。

本文引用地址:完整版本请见二、常用混合编程主要有下面两种:1、直接在C/C++程序中嵌入汇编语句块: 例如在C/C++程序中嵌入以下汇编代码: asm(STR: .string\abs\); 注意:不要把汇编代码加到C/C++太复杂的结构里2、在C/C++程序中使用汇编语言的变量、常数、函数 (1)在C/C++的函数中调用汇编函数:

1)在C/C++中所做工作

extern int asmfunc(int a); int gvar=4;

void main() { int i; i=asmfunc(gvar); i=i+1; }

2) 汇编里的处理 .global _asmfuc .global _gvar

_asmfunc:

(2)在c/C++程序中访问汇编语言中的变量

第一种情况:在C/C++程序中访问.bss段中定义的变量 1)汇编: .bss _var1,4 .global _var1 2)在C/C++中作的工作: extern int var1; 第二种情况:在C/C++程序里访问没有定义在.bss段中定义的变量 1)汇编里要作的工作 .global _sine .sect sine_tab

_sine: .float 0.0 .float 0.124554 .float 0.99882 .float 0.45231

首先要在汇编程序里定义一个数据表,将该数据表放到一个自己定义的段中,然后定义一个全局指针变量,并将该指针变量指向数据表的首个地址。

2)在C/C++ 中要做的工作: extern float sine[]; float sine_p=sine; f=sine_p[4];

需要定义一C/C++的指针变量,该指针变量和汇编中的全局变量可以进行数据读取。

(3)在C/C++程序中访问汇编语言中的常量: (1)汇编程序中的做法: _tablesize .set 1000 .global _table_size

(2) C/C++程序中要做的工作:

extern int table_size; #define TABLE_SIZE ((int)(table_size)); ........ for(i=0;iTABLE_SIZE;i++)

c语言相关文章:c语言教程

c++相关文章:c++教程

重庆牙齿矫正医院

西安植发价格

长春植发

长沙隆鼻医院