第一个嵌入汇编的C程序
第一个嵌入汇编的C程序
最近两天开始学习linux内核,看了赵炯博士的《linux内核完全注释》感觉受益匪浅。今天看到第三章 嵌入汇编部分,于是写了一个小程序试验了一下,用gcc编译通过。代码如下:
#include<stdio.h><stdlib.h><.h>** StrCopy(array *a1,array *
register *,a1->,a2->(a1->size>a2->->chlist=(*)malloc(a1->size*(->size=a1->
:(a2->chlist),(a1->chlist),(a1-> main(*=l2.chlist==l2.size===strlen(l1.chlist)+
str=StrCopy(&l1,&
实现了字符串的拷贝。
开始的时候汇编部分最后一行写法如下:
:,,,
编译出错:
StrCopy.c::: 错误: can’t find a register ‘CREG’ :: 错误: ‘asm’操作数中有不可能的约束
在网上查了一下原因,从一篇博文中得知:"edi","esi","ecx" 已经在输入列表中给出,会被修改寄存器列表再次给出,gcc就会报错。修改后编译通过。
评论暂时关闭