
ARM汇编
Z_Monkey
初入此地,大家多多关照!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ARM汇编程序---C语言调用ARM汇编实现字符串的拷贝
简单的实现将一个字符串复制到另外一个字符数组中。拷贝功能在ARM中实现。C语言调用汇编实现。 C语言代码:主要注意要将汇编中的函数导入进来。其余很简单!我这样赋值方便以后调试的时侯方便。 #include extern void strcopy(char *d, const char *s); int main() { const char *srcstr="abcdefghi"; c原创 2012-11-26 23:12:24 · 7143 阅读 · 0 评论 -
ARM汇编程序---通过ARM汇编实现累加一个队列的所有元素
具体思路:先定义一个队列用来存储数据,在实现中,通过移位操作可以获知队列的长度(移位操作相比除法更加快速),同时注意在队列的存储中是一个字存储一个数据,但是移位和后面累加的操作中,队列指针的指向地址每次加4还是加8主要看自己的机子是32位还是64位的机子。然后后面就是主要的实现部分了,大家应该都可以看懂。 ARM代码如下: ARRAY_SIZE EQU 40 AREA HOMEWORK4,原创 2012-11-26 23:26:48 · 4429 阅读 · 0 评论 -
ARM汇编程序---通过ARM汇编调用C语言函数实现累加
在C语言中定义实现一个累加的函数,参数是累加的最大值,从1加到此值。下面是代码: 汇编代码:其中注意开始的参数的定义要紧靠前面,负责无法读出,其中要将C语言函数导入:IMPORT+函数名,并将你定义的汇编开始部分定义出去:EXPORT+开始函数名 STACK_TOP EQU 0x40002000 N EQU 100 PRESERVE8 AREA HOMEWORK,CODE,READO原创 2012-11-26 23:01:00 · 3020 阅读 · 0 评论 -
ARM汇编程序---用ARM汇编实现R0寄存器中数据调换数据
具体思路: 本题本人的思路很简单,就是通过以为操作来实现,注意此时不要使用循环移位,用算数移位和逻辑移位即可,每次移位保存其中一个16进制数,知道每个数都保存,然后再将这些数据反序存储到R0寄存器中。 ARM代码: AREA HOMEWORK4,CODE,READONLY ENTRY START LDR R0,=0xAABBCCDD MOV R1,R0,LSR #28 M原创 2012-11-26 23:49:04 · 3287 阅读 · 0 评论 -
ARM汇编程序---1-100累加和一个简单排序
嵌入式初学者,这学期刚开课,学起来感觉很不错。 第一个累加和的源码: AREA TEXT,CODE,READWRITE ENTRY MOV R0,#100 ;循环数目 MOV R1,#0 ;初始化数据 LOOP ADD R1,R1,R0 ;将数据进行相加,获得最后的数据 SUBS R0,R0,#1 ;循环数据R0减去1 CMP R0,#0 ;将R0与0比原创 2012-10-19 23:21:21 · 16617 阅读 · 0 评论 -
ARM汇编程序---ARM汇编实现简单判断环习题
自己写的一些文章都是自己的原创,有问题可以直接提出,如果有什么需要也可以提出。这些文章大部分是自己的一些作业和一些实验,大家发现什么问题可以指出,互相研究。本人也是嵌入式初学者,希望自己的文章对大家有帮助。 ARM汇编代码:很简单的实现 AREA HOMEWORK4,CODE,READONLY ENTRY MOV R0,#9 MOV R1,#15 START CMP R原创 2012-11-26 23:18:05 · 1713 阅读 · 0 评论 -
ARM汇编程序---通过LDMFD/STMFD实现R0-R6寄存器的数据的交换
交换规则如下: 具体思路: 在此题中是不实用其他的寄存器从而解决问题,所以此时我们就可以将这些数据先通过LDMFD(过后增加)指令保存到堆栈里面,然后再通过LDMFD(过后增加)和STMFD来进行数据的交换。我再进行存储了数据以后又用了STMFD操作是因为经过是一个操作堆栈的指针已经指向了堆栈的最后,所以此时用STMFD操作可以将堆栈的指针指向堆栈的开始位置。然后载经过LDMFD操作实现寄原创 2012-11-26 23:40:43 · 1522 阅读 · 0 评论