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

汇编点亮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&


http://www.kler.cn/a/579492.html

相关文章:

  • 假设检验与置信区间在机器学习中的应用
  • 【Linux】信号处理以及补充知识
  • c++: 容器vector
  • 对WebSocket做一点简单的理解
  • 小程序 wxml 语法 —— 39 简单双向数据绑定
  • navicat导出postgresql的数据库结构、字段名、备注等等
  • SpringBoot项目的五种搭建方式
  • Docker 运行 GPUStack 的详细教程
  • 微软程序的打包格式MSIX
  • 人类的学习既有强化学习也有弱化学习
  • Java后端高频面经——Spring、SpringBoot、MyBatis
  • tcc编译器教程2 编译lua解释器
  • DeepSeek教我写词典爬虫获取单词的音标和拼写
  • 非常重要的动态内存错误和柔性数组1
  • Vue 的 render 函数如何与 JSX 结合使用
  • P9421 [蓝桥杯 2023 国 B] 班级活动--数学题(配对问题)
  • 基于遗传算法的IEEE33节点配电网重构程序
  • leetcode77.组合
  • 基于STC89C52的8x8点阵贪吃蛇游戏
  • Vue 3 实现富文本内容导出 Word 文档:前端直出方案与优化实践