0628_ARM4

练习:

stm32流水灯

.text 
.global _start
_start: @使能GPIOE外设时钟   0X50000A28     RCC_MP_AHB4ENSETR[4]->1
LDR R0,=0x50000a28   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
ORR R1,R1,#(0x3<<4)   @将第4,5位设置为1
STR R1,[R0]  @将修改后的数值写回去@设置PE10为输出   0X50006000 [21:20]->01
LDR R0,=0x50006000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @先清零
ORR R1,R1,#(0x1<<20)   @再置位
STR R1,[R0]  @将修改后的数值写回去@设置PE8为输出   0X50006000 [17:16]->01
LDR R0,=0x50006000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @先清零
ORR R1,R1,#(0x1<<16)   @再置位
STR R1,[R0]  @将修改后的数值写回去@设置PF10为输出   0X50007000 [21:20]->01
LDR R0,=0x50007000   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @先清零
ORR R1,R1,#(0x1<<20)   @再置位
STR R1,[R0]  @将修改后的数值写回去@设置PE10为推挽输出  0X50006004  [10]->0
LDR R0,=0x50006004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<10)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去@设置PE8为推挽输出  0X50006004  [8]->0
LDR R0,=0x50006004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<8)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去@设置PF10为推挽输出  0X50007004  [10]->0
LDR R0,=0x50007004   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x1<<10)   @将第10位设置为0
STR R1,[R0]  @将修改后的数值写回去@设置PE10低速输出  0X50006008   [21:20]->00
LDR R0,=0x50006008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PE8低速输出  0X50006008   [17:16]->00
LDR R0,=0x50006008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PF10低速输出  0X50007008   [21:20]->00
LDR R0,=0x50007008   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PE10无上啦下拉电阻  0X5000600C  [21:20]->00
LDR R0,=0x5000600C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PE8无上啦下拉电阻  0X5000600C  [17:16]->00
LDR R0,=0x5000600C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<16)   @清零
STR R1,[R0]  @将修改后的数值写回去@设置PF10无上啦下拉电阻  0X5000700C  [21:20]->00
LDR R0,=0x5000700C   @指定操作的内存地址
LDR R1,[R0]  @将R0对应的地址空间中的值读取出来
BIC R1,R1,#(0x3<<20)   @清零
STR R1,[R0]  @将修改后的数值写回去WH:BL LED1_ONBL DELAYBL LED1_OFFBL DELAYBL LED2_ONBL DELAYBL LED2_OFFBL DELAYBL LED3_ONBL DELAYBL LED3_OFFBL DELAY
B WHLED1_ON:@设置PE10输出高电平  0X50006014  [10]->1LDR R0,=0x50006014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来ORR R1,R1,#(0x1<<10)   @写1STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED2_ON:@设置PF10输出高电平  0X50007014  [10]->1LDR R0,=0x50007014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来ORR R1,R1,#(0x1<<10)   @写1STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED3_ON:@设置PE8输出高电平  0X50006014  [8]->1LDR R0,=0x50006014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来ORR R1,R1,#(0x1<<8)   @写1STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED1_OFF:@设置PE10输出高电平  0X50006014  [10]->1LDR R0,=0x50006014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来BIC R1,R1,#(0x1<<10)   @清0STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED2_OFF:@设置PF10输出高电平  0X50007014  [10]->1LDR R0,=0x50007014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来BIC R1,R1,#(0x1<<10)   @清0STR R1,[R0]  @将修改后的数值写回去MOV PC,LRLED3_OFF:@设置PE8输出高电平  0X50006014  [8]->1LDR R0,=0x50006014   @指定操作的内存地址LDR R1,[R0]  @将R0对应的地址空间中的值读取出来BIC R1,R1,#(0x1<<8)   @清0STR R1,[R0]  @将修改后的数值写回去MOV PC,LR@封装延时函数
DELAY:LDR R3,=0x10000000
MM:CMP R3,#0SUBNE R3,R3,#1BNE MMMOV PC,LR.end

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

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

相关文章

.net 8 集成 MinIO文件存储服务,实现bucket管理,以及文件对象的基本操作

一、准备工作 1、本地部署MinIO服务 2、创建MinIO的Access Key 3、创建.net 项目 4、下载MinIO sdk 5、相关文档 二、编写MinIO工具类 三、管理存储桶 1、MyBucket类 &#xff08;1&#xff09;判断bucket是否存在 &#xff08;2&#xff09;新建bucket &#xff08…

获取HTTP请求参数的方法

获取HTTP请求参数的方法 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来深入探讨一下如何在Java中获取HTTP请求参数的方法。 在Web开发中&#xff0…

AI大模型-关于推理、可解释性和 LLMs_ai 推理模型

引言&#xff1a;以下文章的主题我已经思考了很久&#xff0c;我希望能我的话能引起你的思考&#xff0c;并于一些更悲观的AI评论相均衡。推理和可解释性是充满细微差别的主题——我希望这篇文章能体现这一点。 去年 GPT-4 发布时&#xff0c;我注意到出现了一个特殊的议论&…

新能源行业必会基础知识-----电力市场概论笔记-----经济学基础

新能源行业知识体系-------主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/139946830 目录 1. 什么是市场2. 电力市场机制设计的基本要求 1. 什么是市场 经济学定义 市场是供需双方交易并决定商品价格和产量的机制市场可…

JVM原理(一):JVM运行时数据区域的分析

1. 程序计数器 程序计数器是一块较小的内存空间&#xff0c;它可以看作是当前线程所执行的字节码的行号指示器。 作用 在Java虛拟机的概念模型里&#xff0c;字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令&#xff0c;它是程序控制流的指示…

ASP.NET 使用web.config配置文件的system.webServer/modules标签实现登录验证

前言 modules 标签允许你添加、删除或配置在 IIS 中运行的 HTTP 模块。HTTP 模块是处理 HTTP 请求和响应的组件&#xff0c;它们可以在请求处理管道的不同阶段执行代码。某些 system.webServer 中的设置可能只适用于 IIS 的特定模式&#xff08;如集成模式&#xff09;&#x…

Git拉取、切换分支等操作

当你在本地计算机上通过 git clone 命令克隆了一个 Git 仓库后&#xff0c;你会得到一个与远程仓库相对应的本地副本。这个本地副本包含了远程仓库的所有历史记录、分支、标签等。接下来&#xff0c;我会详细解释在该目录下启动 Terminal 并使用 Git 命令来查看和切换分支&…

【FPGA】Verilog 中的 genvar 和 generate 语句教程

在 Verilog 中&#xff0c;generate 语句用于生成多个结构化的代码块&#xff0c;这些代码块可以是循环&#xff08;使用 for&#xff09;或条件生成&#xff08;使用 if&#xff09;。genvar 是一个在 generate 块中使用的变量&#xff0c;用于迭代生成实例。 什么是 genvar&…

一站式企业服务平台能够帮助企业解决哪些问题?

近年来一站式企业服务平台备受区域政府及园区管理者的青睐&#xff0c;充当着区域政府或园区的千里眼和顺风耳&#xff0c;可以用来捕捉与区域经济发展相关的信息&#xff0c;也可以用来倾听企业的诉求&#xff0c;更是成为了区域深抓企业服务的多面手。 同时&#xff0c;一站式…

高电压技术-冲击高压发生器MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 冲击电压发生器是产生冲击电压波的装置&#xff0c;用于检验电力设备耐受大气过电压和操作过电压的绝缘性能&#xff0c;冲击电压发生器能产生标准雷电冲击电压波形&#xff0c;雷电冲击电压截波,标准操作冲击…

SHELL脚本学习(十三)初识 gawk 编辑器

概述 gawk提供了一种编程语言&#xff0c;而不仅仅是编辑器命令。 在gawk语言中&#xff0c;可以实现如下操作&#xff1a; 定义变量保存数据使用算数和字符串运算符处理数据使用结构化编程概念 为数据处理添加处理逻辑提取文件中的数据并将其重新排列组合&#xff0c;最后生…

注解详解系列 - @Bean:定义Spring管理的Bean

注解简介 在今天的注解详解系列中&#xff0c;我们将探讨Bean注解。Bean是Spring提供的一个注解&#xff0c;用于在Java配置类中显式定义一个Spring管理的Bean。通过Bean注解&#xff0c;可以灵活地定义和配置Bean&#xff0c;从而增强应用程序的可维护性和可测试性。 注解定义…

python_时间戳对齐

需求 python 有2个保存时间戳的list&#xff0c; listA 和 listB, 对于listA中的每一个时间戳元素cur_ts&#xff0c; 查找listB中 与cur_ts最接近的前后两个时间戳元素 代码 import bisect# 示例数据 listA [1, 5, 10, 15] listB [2, 6, 8, 12, 14, 18]def find_closest_…

容器化spring boot应用程序

容器化spring boot应用程序有多种方式&#xff0c;如基于简单的Dockerfile&#xff0c;多阶段Dockerfile以及基于Docker Compose等&#xff0c;我们将逐步给大家介绍&#xff0c;本节主要介绍基于简单的Dockerfile进行容器化spring boot的应用程序。 创建Spring boot应用程序 …

SOLID:软件系统设计的五个基本原则

SOLID 是面向对象设计和编程中的五个基本原则的首字母缩写&#xff0c;旨在鼓励更加灵活和可维护的软件设计。SOLID 原则可以帮助我们更好地理解和实施某些设计模式。 SOLID 原则包括以下五个方面&#xff1a; 单一职责原则&#xff08;Single Responsibility Principle, SRP&…

Java零基础-集合:Collections

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

未来科技中的RTK接收机应用探索

RTK实时差分定位技术&#xff08;RTK&#xff0c;Real-Time Kinematic&#xff09;&#xff0c;作为高精度定位技术的一种重要手段&#xff0c;已经在地理测绘、测量工程、航空航天等领域取得了广泛应用。随着科技的不断发展&#xff0c;RTK导航接收机的应用领域也日益拓宽。首…

AI大模型日报#0628:谷歌开源9B 27B版Gemma2、AI首次实时生成视频、讯飞星火4.0发布

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff01;《AI大模型日报》今日要点&#xf…

【高考】选专业时以什么为主?

【高考】选专业时&#xff0c;应避免的误区-CSDN博客 【高考】选专业时以什么为主&#xff1f;-CSDN博客 分数限制下&#xff0c;选好专业还是选好学校&#xff1f;-CSDN博客 分数限制下&#xff0c;选好专业还是选好学校&#xff1f;-CSDN博客 分数限制下&#xff0c;选好专…

合并排序的数组

题目链接 合并排序的数组 题目描述 注意点 A的末端有足够的缓冲空间容纳BA和B都是排序的 解答思路 最初想到的是双指针&#xff0c;从小到大找到合并B时应该A相应位置应该插入的元素&#xff0c;因为在插入的过程中B的元素会替换A原有位置的元素&#xff0c;所以需要先将A…