当前位置: 首页 > news >正文

汇编点亮LED

目录

一、ARM常用汇编指令

二、汇编点亮LED

2.1 GPIO简述

2.2 GPIO相关寄存器

2.3 LED原理图

2.4 汇编点亮LED


一、ARM常用汇编指令

常用汇编格式:

label : instruction @ comment

        label:标号

        instruction:具体汇编指令

        comment:注释内容

常用段名:

        .text:代码段

        .data:初始化的数据段

        .bss:未初始化的数据段

        .rodata:只读数据段

        .section:自定义段(如.section .vector)

常见伪操作:

        .global:定义全局标号(如.global _start)

        .align:字节对齐(如.align 2)

寄存器间数据传输:

        mov:寄存器数据(或者是立即数)拷贝到另一个寄存器。

                mov r0, r1

                mov r0, #0x12

        mrs:读程序状态寄存器。

                mrs r0, cpsr

        msr:写程序状态寄存器

                msr cpsr, r0

        mrc:读cp15协处理器

                mrc r0, cpsr

        mcr:写cp15协处理器

                mcr cpsr, r0

内存与寄存器数据传输:

        ldr:把内存数据(或者是立即数)加载到寄存器。

                ldr r0, =0x80000000

                ldr r1, [r0]

        str:把寄存器数据写入到内存。

                ldr r0, =0x80000000

                str r1, [r0]

压栈和出栈:

        push:把寄存器列表存入栈中。

                push {r0~r3, r12}

        pop:从栈中恢复寄存器列表。

                pop {r0~r3, r12}

跳转:

        b:跳转到目标地址

                b main

        bl:跳转到目标地址,并把当前pc指针值保存在lr寄存器中。

                bl main

算术运算指令:

        add:加法运算

                add r1, r2, r3

                add r1, r2

        sub:减法运算

                sub r1, r2, r3

        mul:乘法运算

                mul r1, r2, r3

        udiv:除法运算

                udiv r1, r2, r3

逻辑运算指令:

        and:与

                and r1, r2, r3

        orr:或

                orr r1, r2, r3

        bir:位清除

                bir r1, r2, r3

二、汇编点亮LED

2.1 GPIO简述

GPIO数量:

        5组GPIO(GPIO1~GPIO5&

相关文章:

  • python文本处理openpyxl库安装与使用
  • 江科大51单片机笔记【9】DS1302时钟可调时钟(下)
  • 【五.LangChain技术与应用】【25.LangChain RAG检索器与完整案例:实战中的RAG应用】
  • Mac同时安装jdk8和jdk17,默认选择jdk8
  • 计算机组成与系统结构—袁春风阅读笔记(一)
  • 博查搜索API日调用量突破3000万次,达到Bing API的1/3。
  • 论文粗读——Isometric 3D Adversarial Examples in the Physical World
  • 【CSS】---- 纯 CSS 实现无限滚动轮播
  • Linux下AWK命令使用方法
  • JavaScript中的Math()
  • SpringBoot优雅关机,监听关机事件,docker配置
  • gbase8s数据库检测非法字符
  • VSCode 配置优化指南:打造高效的 uni-app、Vue2/3、JS/TS 开发环境
  • JS—组成:2分钟掌握什么是ECMAScript操作,什么是DOM操作,什么是BOM操作
  • 在Blender中给SP分纹理组
  • GStreamer —— 2.6、Windows下Qt加载GStreamer库后运行 - “教程6:媒体格式和Pad功能“(附:完整源码)
  • 基于Spring Boot的多级缓存架构实现
  • C++学习(十四)(使用库)
  • JVM详解
  • C# 开发工具Visual Studio下载和安装
  • 义乌至迪拜“铁海快线+中东快航”首发,物流成本降低18%
  • 陕西:未来一周高温持续,继续发布冬小麦干热风风险预警
  • 体坛联播|热刺追平单赛季输球纪录,世俱杯或创收20亿美元
  • 习近平在第三十五个全国助残日到来之际作出重要指示
  • 美国将与阿联酋合作建立海外最大的人工智能数据中心
  • 国家统计局向多省份反馈统计督察意见