IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 第四十一讲 常用汇编指令 -> 正文阅读

[嵌入式]第四十一讲 常用汇编指令

第四十一讲 ARM常用汇编指令

写在前面:看到这里你也许会疑惑,前面还有几讲呢?是的,前面几讲我并没有打算写。没有写的原因并不是它不重要,也不是我懒。仅仅是因为我对前面的理解也还不够深刻。我现在只能知道表面的一些东西,怕这样会误导大家。所以我从后面实践开始。我回去慢慢探索,慢慢理解。毕竟实践出真知嘛。好了,废话就到这里了,接下来进入正题。

一、汇编格式

1、格式

label:instruction @ comment

2、格式介绍

  1. lable:标号
  2. instruction:具体汇编指令
  3. comment:注释内容

二、常用段名

  • .text:代码段
  • .data:初始化数据段
  • .bss:未初始化数据段
  • .rodata:只读数据段
  • .section:自定义段

三、常见操作

1、定义全局标号

  • .global

    定义全局标号

    .global _start

    如果使用全局定义了标号之后,这个标号就能在其他文件使用,类似于C语言的extern关键字

2、字节对齐

  • .align

    字节对齐

    .align 2(2字节对齐)

四、常用汇编指令

指令功能示例
mov寄存器数据或者立即数拷贝到另一个寄存器mov r0, r1
将r1寄存器的值拷贝到r0
mov r0, #0x12
将r0赋值为0x12
mrs读取程序状态寄存器mrs r0, cpsr
将cprr寄存器拷贝到r0
msr写程序状态寄存器msr cpsr, r0
将r0的值拷贝到cpsr寄存器
mrc读cp15协处理器用法与msr类似
mcr写cp15寄存器用法与msr类似
ldr把内存数据或者是立即数加载到寄存器ldr r0, =0x80000000
将r0寄存器赋值为0x80000000
ldr r1,[r0]
将r0指向的地址的值赋值给r1([]类似指针)
str把寄存器的值写入到内存str r1,[r0]
将r1的值写入r0指向的地址
push把寄存器列表压入栈中push {r0~r3,r12}
将r0、r1、r2、r3、r12的值压入栈中
pop从栈中恢复寄存器列表pop {r0~r3,r12}
从栈中恢复r0、r1、r2、r3、r12的值
b跳转到目标地址b main
跳转到main函数(不可逆)
bl跳转到目标地址,并将pc值保存到lr寄存器中bl main
跳转到main函数,并将pc值保存到lr寄存器
add加法运算add r1,r2,r3
r1=r2+r3
add r1,r2
r1=r1+r2
sub减法运算同加法
mul乘法运算同加法
udiv除法运算同加法
andand r1,r2,r3
r1=r2&&r3
orrorr r1,r2,r3
r1=r2||r3
bic位清除bic r1,r2,r3
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-10 11:13:10  更:2021-12-10 11:13:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:58:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码