ARM架构-伪指令、伪操作、ATPCS协议

汇编中的符号:

1.指令:能够编译生成一条32位的机器码且能被CPU识别和执行

2.伪指令:本身不是指令,编译器可以将其替换成若千条指令

 3.伪操作:不会生成代码,只是在编译阶段告诉编译器怎么编译(例如:宏、条件编译)

                                                                                                  预处理过程中就进行了展开

伪指令

STOP地址中的内容      -------          B STOP

使用mov指令时,不确定是不是立即数时,可使用LDR指令.

伪操作

都是以.开头,且不同编译器,不同的伪操作不同,指令和伪指令控制CPU,由ARM公司决定

.weak symbol              虽然未定义FUNC,但是不要报错

一个字为4个字节

ARM中的一条指令占四个字节,所以.aliqn会对齐四个字节 ,后面的数为2的几次方--4,8,16

两种类型指令声明

任何芯片刚上电后,都要先用汇编语言

C和汇编混合编程

 1.汇编语言调用 (跳转) c语言

2.c语言调用(跳转) 汇编语言
3.C语言内联汇编             .c文件中有汇编语言

1.汇编语言调用 (跳转) c语言

在汇编中将c语言中的函数当做标号来处理

2.c语言调用(跳转) 汇编语言

在c语言中将汇编语言的标号当做函数来处理

注:c和汇编的混合编程的原则:

在哪种语言环境下符合哪种语言的语法规则

3.C语言内联汇编

ATPCS协议

 ATPCS协议的主要内容
 1.栈的种类为使用满减栈
 2.寄存器的使用
    a.R15 程接计数器 只能用于存储程序的指针,不能做其他用途
    b.R14 链接寄存器 只能用于存储返回地址,不能用作其他用途
    c.R13 栈指针,只能用于存储栈指针,不能作其他用途
    d.当函数的参数少于4个的时候使用RO-R3传参,多出4个的部分用栈传递
         函数的返回值使用RO寄存器传递
 3.其余寄存器主要用于存储局部变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/108946.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32WB55开发(4)----配置串口打印Debug调试信息

STM32WB55开发----4.配置串口打印Debug调试信息 概述硬件准备视频教学样品申请选择芯片型号配置时钟源配置时钟树RTC时钟配置查看开启STM32_WPAN条件配置HSEM配置IPCC配置RTC启动RF开启蓝牙开启串口调试配置蓝牙参数设置工程信息工程文件设置Keil工程配置代码配置结果演示 概述…

mysql5.7版本数据库主主同步

mysql5.7配置双主同步 双主模式定义前提配置一、master_1配置二、master_2配置三、双主配置四、验证主主同步 双主模式定义 双主模式是指两台服务器互为主从,任何一台服务器数据变更,都会通过复制应用到另外一方的数据库中。 随着业务发展,架…

C#自定义控件组件实现Chart图表(多Y轴,选择图例加粗,选择放大,缩放,点击查看信息等功能)

先看看ECharts的效果 C# 工具箱里的Chart控件就不演示了,很多效果没办法做出来,做出来效果也很不理想。所以,需要自己去手动实现工具箱里的Chart没办法实现的效果; 先看看实现后的效果 绑定数据 点击图表 点击右侧图例加粗 选择放大 右键 点击缩小,恢复

小程序中如何查看指定会员的所有订单?

在小程序中,查看指定会员的所有订单可以通过如下方式实现。 1. 找到指定的会员卡。在管理员后台->会员管理处,找到需要查看订单记录的会员卡。也支持对会员卡按卡号、手机号和等级进行搜索。 2. 查看会员卡详情。点击查看详情进入该会员卡的详情页面…

【搭建私人图床】本地PHP搭建简单Imagewheel云图床,在外远程访问

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

Kotlin+MVVM 构建todo App 应用

作者:易科 项目介绍 使用KotlinMVVM实现的todo app,功能界面参考微软的Todo软件(只实现了核心功能,部分功能未实现)。 功能模块介绍 项目模块:添加/删除项目,项目负责管理todo任务任务模块&a…

4-1 张量的结构操作

张量结构操作主要包括:张量创建,索引切片,维度变换,合并分割。 一、创建张量 张量创建的许多方法和numpy中创建array的方法很像。以下记录一些比较常用的操作: (1)直接采用torch.tensor创建&…

【操作系统】进程的通信IPC

进程通信是指进程之间的信息交换。 低级通信方式:PV操作 高级通信方式:1.共享存储2.消息传递3.管道通信 共享存储 低级数据结构共享,高级存储区共享。 对共享空间进行读写操作时,需要用到互斥工具。 消息传递 利用发送消息和…

OpenCV 01(图像加载与显示)

一、机器视觉 现在说的机器视觉(Machine Vision)一般指计算机视觉(Computer Vision), 简单来说就是研究如何使机器看懂东西。就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传…

【LeetCode-中等题】904. 水果成篮

文章目录 题目方法一:滑动窗口方法二: 题目 题目的意思就是:找至多包含两种元素的最长子串,返回其长度 方法一:滑动窗口 class Solution { // 滑动窗口 找至多包含两种元素的最长子串,返回其长度public …

C++之编译时预定义宏flag(二百一十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

UE5 Foliage地形植被实例删不掉选不中问题

目前问题测试发生在5.2.1上 地形上先填充后刷的植被删不掉 首先这个就是bug,大概看到说是5.3上能解决了,对此我只能吐槽ue5上地形植被bug太多了 什么nanite还能产生bug,不过这次又不是,整个删掉instance可以删除所有植被&#…