嵌入式
Orion-
热爱IT行业,不定时更新文章。
互相交流,一起学习。
展开
-
嵌入式微处理器1-3章汇编知识总结
首先我们了解一些基础知识。char类型的大小:在32位RAM处理器的C语言中,char类型变量占一个字节。int类型的大学:在32位RAM处理器的C语言中,int代表4个字节(32位)。异或:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。掩码:掩码是一串二进制代码对目标字段进行位与运算。TEQ — 测试位: TST{条件} {P} <op1&原创 2018-10-20 01:18:24 · 1111 阅读 · 1 评论 -
ARM3级流水线的PC值关系
在解释PC值关系之前先了解一些概念。程序计数器(PC寄存器)程序计数器是用于存放下一条指令所在单元的地方。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址自动加1,或者由转移指针给出下一条指令的地址。ARM系统对于32位处理器,一条指令占据4字节。流水线工作流水线划分为取指,译码,执行。但并不是需...原创 2018-10-17 20:13:01 · 1751 阅读 · 4 评论 -
memmove函数汇编实现
参考mommove源码void* memmove(void* dst,const void* src,size_t count){ void* ret = dst; //dst <= src表示,如果dst在src的前面,从前往后复制不会覆盖src中还没有复制的内容 if (dst &amp原创 2018-11-07 13:11:52 · 2540 阅读 · 1 评论 -
memmove函数进阶版(内容非4+地址非4对齐均可快速复制)
注:参考学习,共同进步。普通拷贝方式:所有内容都用ldrb/strb拷贝,即1字节拷贝。快速拷贝原理:尽可能的用4字节ldr/str指令拷贝内容,剩余的内容用1字节拷贝。地址需要修正原因:因为ldr/str是4字节拷贝的指令,address需要是4字节对齐的才能正常加载/存储.memmove函数拷贝时需要考虑的因素:源地址和目的地址大小的比较,决定前序还是后序拷贝。源地址和目的地址地...原创 2018-12-04 23:21:48 · 1013 阅读 · 0 评论