问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在ARM的程序框架下,写一个内嵌的汇编程序,实现strcat的功能

发布网友 发布时间:2022-05-06 21:34

我来回答

3个回答

热心网友 时间:2023-09-20 19:50

#define U8 unsigned char
#include <string.h>
#include <stdio.h>
#define TRUE 1
#define FALSE 0
//#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting

void my_strcat(const char* str1, const char* str2)
{
int ch1;
__asm
{
loop:
ldrb ch1, [str1], #1
cmp ch1,#0
bne loop
sub str1,str1,#1
loop2:
ldrb ch1, [str2], #1
strb ch1, [str1],#1
cmp ch1,#0
bne loop2
};
}

int main(void)
{
const char* b = "Hello World!";
char a[30];
strcpy(a,"I am allright!");

printf("before strcat :b=%s\n",b);
__asm{
MOV R0, a
MOV R1, b
BL my_strcat, {R0, R1}
};

printf("after strcat :b=%s\n",b);

}

这个回答够标准了吧...

热心网友 时间:2023-09-20 19:50

friend obj& operator+(obj& rhs,obj& dst)
{
strcat(rhs.str,dst.str);
return rhs;
}

热心网友 时间:2023-09-20 19:51

#include <stdio.h>
void mystrcat(char *dest,char *src)
{
__asm__ __volatile__ (
"mov r0, #0x0\n"
"mov r1, %[src]\n"
"mov r2, %[dest]\n"
"loop:\n"
"ldrb r0, [r2],#0x1\n"
"cmp r0, #0\n"
"bne loop\n"
"sub r2,#1\n"
"beq cat\n"
"cat:\n"
"ldrb r0,[r1],#0x1\n"
"strb r0,[r2],#0x1\n"
"cmp r0,#0\n"
"beq end\n"
"bne cat\n"
"end:\n"
:
:[dest]"r"(dest),[src]"r"(src)
:"r0","r1","r2"
);
}
int main(int argc, char *argv[])
{
char a[32] = "hello";
char b[16] = "world";
mystrcat(a,b);
printf("a : %s\n",a);
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 如何用8086指令实现do while功能 女孩穿白球鞋小短裤小背心,我站在门外,她故意把腿伸出来踢了我一脚,她为什么要踢我一脚是什么意思? arm编程,c语言中嵌入汇编实现1+2+3+...+100 杀破狼2中小女孩穿的白色鞋子 一个陌生小女孩穿白色运动鞋,牛仔裤,她走过来,故意把脚伸到我的旁边反复的颠了几下,代表什么意思? 汇编语言blt 是什么意思 在GNU,ARM汇编语言中出现的“b.”是什么意思? 一道汇编程序题目,急! MIPS汇编语言,load word(lw)那一行s3外面不是32吗 护蛋日记,急急要100字一篇的 1735125日元等于多少人民币 15219日元各多少人民币 1280日元换算人民币多少钱? 15562日元等于多少人民币 2102日元是多少人民币 1523日元等于多少人民币 2517日元等于多少人民币 154220日元多少人民币 15218日元是多少人民币 1452日元等于多少人民币 12岁的女孩穿这种凉鞋好看吗? 小女孩穿球鞋白棉袜跑步怎么样,会臭吗? 虎牙,斗鱼的直播怎么看 电脑上打开虎牙直播之后还可以同时打开斗鱼直播app吗? 斗鱼直播和虎牙直播有什么区别么 谁能给我讲解一下。虎牙直播。斗鱼直播他们之间的关系和区别。职业队员一般在哪直播?还有别的直播么?越 lol斗鱼直播可以在优酷上看吗,虎牙直播呢 图文自媒体市场占比减少的数据 适合新手做的自媒体平台,真实后台数据告诉你,让你少走弯路 “斩男色”是什么意思 斩男色是什么意思? “斩男色”是什么意思? 斩男色到底是什么意思 微信好友被删了,自己又不知道他的了。怎么找回? 三星c9Pro更新完手机就不能使用滑动截屏了,该怎么办 微信好友被删了,自己又不知道他的了。怎么找回? 被对方好友拉黑怎样恢复? 被对方好友拉黑怎样恢复? oppo手机锁屏壁纸怎么随着主题变换? 电脑Wps打开怎么上面都是英文