ARM下汇编语言编程

一、ARM汇编语言程序格式


ARM汇编语言是以段(section)为单位来组织源文件的。段是相对独立的、具有特定名称的、不可分割的指令或者数据序列。
段又可以分为代码段和数据段,代码段存放执行代码,数据段存放代码运行时需要用到的数据。一个ARM源程序至少需要一个代码段,大的程序可以包含多个代码段和数据段。

二、ARM汇编语言中常用的伪操作

例如:

    area reset,code,readonly  ;声明了一个名为reset的代码段code32                      ;代表了后面的指令是ARM指令entry                       ;代表该段是程序的入口点
start                           ;标号mov r0, #1                  ;r0 =1mov r1, #2                  ;r1 = 2add r0, r0, r1              ;r0 = r0 + r1nop                         ;伪指令b start                     ;跳转回startend                         ;源文件结束

在汇编语言中分号代表注释 

三、ARM汇编指令集

(1)指令分类

ARM指令集可以分为六大类
1、分别为数据处理指令(完成CPU内部的计算)
2. Load/Store指令(完成CPU与内存 IO外设之间的数据传输)

3.跳转指令 (完成程序的跳转)
4.程序状态寄存器处理指令(完成 CPSR的管理 )
5.协处理器指令(完成CPU扩展功能的实现)
6.异常产生指令(用户程序异常触发)

(2)指令格式中符号说明

(opcode){(cond〉}{S} 〈Rd〉,《Rn〉{,(operand2)}

opcode操作码;指令助记符,如LDR、STR等
cond可选的条件码;执行条件,如EQ、NE等
S

可选后缀;若指定“S”

则根据指令执行结果更新CPSR中的条件码

Rd目标寄存器
Rn存放第1操作数的寄存器
Operand2第2个操作数

(3)数据处理指令一分类
数据处理指令根据指令实现处理功能可分为以下六类:
1、数据传送指令

2、算术运算指令

3、逻辑运算指令

4、比较指令

5、测试指令

6、乘法指令 

(4)数据处理指令

1、算术指令:ADD、ADC、SUB、SBC、RSB、RSC
2、位运算指令:AND、ORR、EOR、BIC
3、比较指令:CMP、CMN、TST、TEQ
4、数据搬移:MOV、MVN
上述指令只能对寄存器操作,不能针对存储器

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

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

相关文章

Java学习|Java基础知识

目录 类与对象继承封装多态高级话题实践项目类与对象 定义与创建 类: 定义一组具有相同属性和行为的对象的模板。对象: 根据类模板创建的实体。示例代码 public class Person {String name;int age;public Person(String name, int age) {this.name = name;this.age = age;}…

4.1 数据分析-excel 基本操作

第四节:数据分析-excel 基本操作 课程目标 学会excel 基本操作 课程内容 数据伪造 产生一份招聘数据 import pandas as pd from faker import Faker import random import numpy as np# 创建一个Faker实例,用于生成假数据,指定中文本地…

iOS 中,用户点击一个按钮到响应的全部流程

在 iOS 中,当用户点击一个按钮(或其他 UI 控件)时,会触发一系列复杂的操作流程,从硬件到软件,再到应用层的事件处理。以下是从用户点击一个按钮到应用响应的完整流程: 硬件层:触摸事…

CSS3 文本效果(text-shadow,box-shadow,white-space等)文本溢出隐藏并且显示省略号

一 text-shadow text-shadow 属性是 CSS3 中用于为文本添加阴影效果的工具。它可以增强文本的可读性和视觉吸引力,提供丰富的视觉效果 1 语法 text-shadow: offset-x offset-y blur-radius color;offset-x:阴影相对于文本的水平偏移量。可以是正值&am…

专用于理解游戏场景的开源大模型-VideoGameBunny

大模型在游戏开发领域扮演了重要角色,从AI机器人生成到场景搭建覆盖各个领域。但在游戏场景理解、图像识别、内容描述方面很差。 为了解决这些难题,加拿大阿尔伯塔的研究人员专门开源了一款针对游戏领域的大模型VideoGameBunny(以下简称“VG…

开源模型应用落地-LlamaIndex学习之旅-LLMs-集成vLLM(二)

一、前言 在这个充满创新与挑战的时代,人工智能正以前所未有的速度改变着我们的学习和生活方式。LlamaIndex 作为一款先进的人工智能技术,它以其卓越的性能和创新的功能,为学习者带来前所未有的机遇。我们将带你逐步探索 LlamaIndex 的强大功能,从快速整合海量知识资源,到…

集成电路学习:什么是ISP系统编程

一、ISP:系统编程 ISP(In-System Programming)即系统编程,是一种在系统内部进行的编程方法,主要用于对闪存(FLASH)、EEPROM等非易失性存储器的编程。ISP编程提供了巨大的灵活性,允许…

Input输入框数值与金额格式的互换(拿来即用的完美组件)

一、前言 实际的页面开发中,需要输入金额类型的输入框比较常见,这类输入框根据实际的业务场景都是要进行个性化的组件封装,本文借助自己封装的一个输入框组件 NumberToAmount.vue 来讲述el-input 输入框中数值与金额格式的互换方法,组件包含的功能如下: 1、限制了输入框只…

网络编程 0903作业

作业 1、将TCP的CS模型再敲一遍 tcpserver.c #include <myhead.h> #define SERPORT 1111 #define SERIP "192.168.58.128" #define BACKLOG 40 int main(int argc, const char *argv[]) {int oldfd socket(AF_INET,SOCK_STREAM,0);//1、产生一个原始套接字…

台球助教预约系统小程序源码开发

引言 随着移动互联网的普及和技术的进步&#xff0c;小程序因其轻量级、便捷性以及良好的用户体验成为了连接线上与线下的重要桥梁。对于台球俱乐部而言&#xff0c;一个高效的小程序不仅可以帮助提高服务质量&#xff0c;还能增强用户粘性&#xff0c;提升品牌形象。本文将探讨…

yolov8目标检测pyside6可视化图形界面+检测源码ui文件——用于计数统计

项目结构 YOLOv8模型加载&#xff1a;加载预训练的YOLOv8模型。PySide6 GUI&#xff1a;设计图形用户界面&#xff0c;用于显示检测结果和控制选项。摄像头/视频输入&#xff1a;从摄像头或视频文件读取图像帧。目标检测&#xff1a;使用YOLOv8模型对输入图像进行实时目标检测…

自动生成对话视频!如何使用Captions的AI视频生成与编辑API工具?

Captions公司最近发布了一套AI驱动的视频生成和编辑API工具&#xff0c;为创作者和开发者提供了一个强大的视频创作生态系统。这个系统包含AI Creator、AI Twin、AI Edit、和AI Translate四大核心功能&#xff0c;每个工具都针对不同的创作需求进行优化。下面我们就一起来详细测…

超越卷积滤波器,HyCoT利用Transformer捕捉高光谱图像的全局依赖性 !

近年来&#xff0c;基于学习的高光谱图像&#xff08;HSI&#xff09;压缩模型的开发引起了大量关注。现有的模型主要使用卷积滤波器&#xff0c;仅捕捉局部依赖性。 此外&#xff0c;它们通常会带来高昂的训练成本&#xff0c;并具有较大的计算复杂性。 为了解决这些问题&…

【无标题】使用Go (或者 Python) 执行外部命令,直接模式和 Shell模式的区别

有时&#xff0c;我们需要通过编程语言执行外部程序、命令或脚本。 Go 语言里提供了 “os/exec” 库&#xff0c;Python 里面也提供了 subprocess 这样的库。 但在具体调用外部命令时&#xff0c;有两种方式&#xff1a; 直接调用外部命令通过 Shell 调用外部命令 以 Go 语…

重新修改 Qt 项目的 Kit 配置

要重新修改 Qt 项目的 Kit 配置&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 打开 Qt Creator 首先&#xff0c;启动 Qt Creator&#xff0c;确保你的项目已经打开。 2. 进入项目设置 在 Qt Creator 中&#xff0c;点击菜单栏的 “Projects” 标签&#xff08;通…

如何利用命令模式实现一个手游后端架构

1. 简介 命令模式是一种行为设计模式&#xff0c;它将一个操作延迟到运行时决定。在游戏开发中&#xff0c;命令模式通常用于处理游戏逻辑、玩家动作等&#xff0c;因为它可以提供更灵活的方式来执行操作&#xff0c;并且易于扩展。 2. 实现步骤 以下是使用命令模式实现手游…

Android - Windows平台下Android Studio使用系统的代理

这应该是第一篇Android的博文吧。以后应该会陆续更新的。记录学习Android的点点滴滴。 之前也看过&#xff0c;不过看完书就忘了&#xff0c;现在重拾Android&#xff0c;记录学习历程。 为何要用代理 因为更新gradle太慢了。 如何使用系统的代理 先找到系统代理的ip和端口。…

OceanMind海睿思参加2024数博会“数据要素赋能生态”活动,获两项数据要素优秀产品认证

近日&#xff0c;2024数博会“数据要素赋能生态”交流活动在贵阳国际生态会议中心成功举办&#xff0c;中新赛克海睿思作为国内数据要素产业优秀服务商代表受邀参加并荣获两项数据要素优秀产品认证。 作为2024数博会的重要组成部分&#xff0c;本次交流活动由北京赛迪出版传媒有…

如何用MySQL设计一个高效的关系数据库架构

如何用MySQL设计一个高效的关系数据库架构 设计一个高效的关系数据库架构是确保数据库性能、可维护性和扩展性的关键。一个良好的数据库设计不仅能够提高查询效率&#xff0c;还能减少数据冗余&#xff0c;降低维护成本。以下将详细介绍如何用 MySQL 设计一个高效的关系数据库…

通配符证书的申请及配置教程

在当今高度互联的世界里&#xff0c;网站和应用程序需要确保其数据传输的安全性&#xff0c;以保护用户的隐私和敏感信息不被窃取。为此&#xff0c;HTTPS协议成为了标准配置&#xff0c;而SSL/TLS证书则是实现这一安全协议的重要组成部分。特别地&#xff0c;对于那些运营着多…