第六篇:汇编基础指令讲解
目录
- 基础汇编代码
- LDR(load)
- STR(store)
- B
- MOV(move)
- LDR(注意跟读内存的LDR不一样,格式不同)
- add(加)
- sub(减)
- BL(branch and Link)
- ldm 和 stm
- ldmia 和 stmdb
- CPU,R0~R15图解
基础汇编代码
LDR(load)
读内存 LDR R0,[R1]
假设R1的值=x,读取地址x的数据(4字节)保存到R0中
STR(store)
写内存命令 STR R0,[R1]
假设R1的值=x,把R0的值写入到地址X(4字节)
B
跳转的意思
MOV(move)
赋值 MOV R0,R1
把R1的值赋给R0,R0=R1
mov R0,#0x100, R0=0x100
LDR(注意跟读内存的LDR不一样,格式不同)
LOR R0,=0x12345678 //R0=0x12345678 伪指令后面跟的数可以是任意值
LOR是伪指令,它会被拆分为几条真正的RAM指令
特别注意
MOV R0,#0x12345678 ---->是无错误的,ARM指令 32位,这里64位了
32位中,需要有某个位或某几位表示mov指令本身和R0本身,那么剩下的就不足32位了,就不能表示任意值了(如:0x12345678),只能表示简单值(如:0x100),一些简单的数值,也被称为立即值,所以为了能表示任意值,就引入了伪指令的概念
add(加)
add r0,r1,#4 //ro = r1+4;
sub(减)
sub r0,r1,#4 //r0=r1-4
BL(branch and Link)
bl xxx //先跳转到xxx;再把返回地址保存在1r寄存器中
ldm 和 stm
2个指令的m 表示 many
- ldm:读内存,写入多个寄存器
- stm: 把多个寄存器的值写入内存
ldmia 和 stmdb
说明:
其他形式简单的描述指令的形式,意思分别是过后增加(Increment After)(ia)、预先增加(Increment Before)(ib)、过后减少(Decrement After)(da)、预先减少(Decrement Before)(db)
stmdb的图解
stmdb sp!, {fp,ip,lr,pc}
sp!=> !作用让 sp=最终的,被修改的sp值 = 4080
ldmia的图解
ldmia sp,{fp,sp,pc}
CPU,R0~R15图解
转载于:https://www.cnblogs.com/panrongfeng/p/9501502.html
第六篇:汇编基础指令讲解相关推荐
- ESP8266--接线与基础指令(讲解与运用)
目录 一.材料准备与接线 二.基础指令 1.基础指令介绍 2.基础指令应用 测试AT启动 重启模块 查询版本号 进入Deep-sleep模式 开关回显功能 恢复出厂设置 串口配置 设置USRT当前临时 ...
- 【Linux系统】第一篇:基础指令篇
文章目录 一.Linux中的文件 二.Linux用户 三.Linux基本指令 ls指令 pwd命令 cd指令 touch指令 mkdir指令 rmdir指令 rm 指令 man指令 cp指令 mv指令 ...
- 汇编语言基础--汇编操作指令概述
本文是接续"汇编语言基础--机器级数据存储",主要介绍汇编指令的构造.寻址和指令主要分类. 操作指令 指令的基本要素: 在"计算机处理器(CPU)基础&quo ...
- 新手上路:ADAMS 基础知识讲解(图文并茂)【转载仿真论坛】(六)
引用 Baker 的 新手上路:ADAMS 基础知识讲解(图文并茂)[转载仿真论坛](六) 六.adams与CAD数据转换篇 (一).proe与adams的联合仿真 1.ADAMS与Pro/E的接口组 ...
- 第六篇:python基础之文件处理
第六篇:python基础之文件处理 阅读目录 一.文件处理流程 二.基本操作 2.1 文件操作基本流程初探 2.2 文件编码 2.3 文件打开模式 2.4 文件内置函数flush 2.5 文件内光标移 ...
- Python之路【第十六篇】:Django【基础篇】
https://www.cnblogs.com/wupeiqi/articles/5237704.html Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django ...
- 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...
经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...
- 【二进制基础篇-1】汇编基础
掌握汇编语言的目的是能够深入理解计算机系统的底层原理,在提高程序设计能力的同时也为二进制安全打下坚实的基础. 目录 1.CPU指令集 1.1 CPU的作用 1.2 CPU指令集 2.数据表示 2.1 ...
- c语言将两个16位变为一个32位,16位汇编第六讲汇编指令详解第第三讲(示例代码)...
16位汇编第六讲汇编指令详解第第三讲 1.十进制调整指令 1. 十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果 2.分成压缩BCD码和非压缩BCD码调整 简而言之: 以前的时 ...
最新文章
- 面试官吐槽:“Python程序员就是不行!”网友:我能把你面哭!
- 使用Cloudera Manager部署oozie
- 树莓派3b配置耳机音频输出
- android — JNI注册方法说明
- 【vulnhub】靶机- [DC系列]DC9(附靶机))
- wps 模拟分析 规划求解_【网友来稿】利用Excel求解线性规划问题
- 线程间通信————互斥
- pdo oracle返回参数游标,PDOStatement::closeCursor
- 华为全面屏鸿蒙,华为5G概念新机:真全面屏+鸿蒙OS 这才是旗舰手机
- GPU Architect Functional Verification
- jinja Comments
- 网站制作---asp操作数据库的一个小例子
- Linux 五种I/O模型
- 2525 小b的字符串(模拟)
- 发动机冒黑烟_发动机总冒黑烟 用这招解决最快!
- 【剖析 | SOFARPC 框架】之SOFARPC 连接管理与心跳剖析
- react Hook useReducer()和useContext()实现Redux效果
- 掌握IDEA的这两款插件,写“破解补丁”分分钟
- antlr 安装使用
- 制作自己的图片数据集(附代码)
热门文章
- android中屏保功能项目,【Android】一段时间不操作弹出【屏保】效果
- e5 e3 php,硬件百科:E3/E5为什么让“垃圾佬”痴迷
- 金融数据分析与挖掘实战练习-1.9
- 大学生学java要去培训机构吗?
- havc是什么意思_avc是什么意?eduis里h.264/a – 手机爱问
- mysql 大量数据 更改索引_MySql——来自狂神说Java - 贤贤贤sir
- 费诺码设计matlab,费诺编码的matlab实现.doc
- 途观l怎么使用_值得考虑的SUV车型,昂科威、探岳、途观L,你会如何选?
- 保证一致性吗_谈了千百遍的缓存数据一致性问题
- jq倒计时html源码,jQuery实现倒计时功能