嵌入式编程中的代码交互与数学运算
1. 在C代码中嵌入汇编代码
GNU C编译器允许将汇编代码直接嵌入到C代码中,它具备与C变量和标签进行交互的功能,并且能与C编译器和优化器协同工作,以实现寄存器的有效使用。
以下是一个简单的示例,我们将 toupper 函数的核心算法嵌入到C主程序中:
//
// C program to embed our Assembly
// toupper routine inline.
//
#include <stdio.h>
extern int mytoupper( char *, char * );
#define MAX_BUFFSIZE 255
int main()
{
char *str = "This is a test.";
char outBuf[MAX_BUFFSIZE];
int len;
asm
(
"MOV R4, %2\n"
"loop: LDRB R5, [%1], #1\n"
"CMP R5, #'z'\n"
"BGT cont\n"
"CMP R5, #'a'\n"
"BLT cont\n"
"SUB R5, #('a'-'A')\n"
"cont: STRB R5, [%2], #1\n"
"CMP R5, #0\n"
超级会员免费看
订阅专栏 解锁全文
3375

被折叠的 条评论
为什么被折叠?



