【MCS-51单片机汇编语言】期末复习总结②——汇编程序设计(题型二)

news2024/12/23 11:08:20

文章目录

  • 顺序结构
  • 分支结构
        • CJNE的使用规则
  • 循环结构
        • 包含部分
        • 分类
  • 常考题型
    • 例题1
        • 题目描述
        • 题解
    • 例题2
        • 题目描述
        • 题解
    • 例题3
        • 题目描述
        • 题解

在这里插入图片描述

顺序结构

  • 程序默认以顺序结构执行

分支结构

  • CJNE进行分支;
    在这里插入图片描述

在这里插入图片描述

CJNE的使用规则

CJNE A, #data rel 
  • 若(A) = (data),则顺序执行
  • 若(A) > (data),则 0 -> (CY)并跳转(重要);
  • 若(A) < (data),则 1 -> (CY)并跳转(重要);

循环结构

包含部分

  • 循环初始化
  • 循环体
  • 循环控制
  • 循环结束

分类

  • 计数式循环控制(以循环次数作为循环是否执行的控制条件)

    • 适合先执行后判断的结构;
    • 适用已知循环次数的场合;
    • 多采用DJNZ指令;
  • 条件循环控制(用某个条件是否满足条件作为循环是否执行的控制条件)

    • 适用于先判断后执行的语句;
    • 适用于未知循环次数的场合;
    • 多采用CJNEJZ(判断A)与JCJNC(判断CY)指令;

常考题型

  • 本章常考题型为汇编语言程序设计

例题1

题目描述

  • 设变量X的值存放在内部RAM中的50单元中,函数值Y存放在内部RAM中的60H单元,请编写程序实现下列分段函数。

在这里插入图片描述

题解

	ORG		0000H			;设置起始地址
	AJMP	MAIN			;跳转到MAIN开始执行
	ORG		0030H			;跳过一些终端地址
MAIN:						
	MOV	A,	50H				;取出X的值
	CJNE	A,	#12,	Jdg2;判断(A)是否等于12,不等于就跳转
BR1:
	MOV		60H,	#6		;令Y = 6
	SJMP	OUTG			;跳转到出口
Jdg2:
	JNC		BR3				;若(CY)=0,则说明X>12,则跳转到分支3
BR2:
	ADD		A,	#6			;X = X + 6
	MOV		60H,	A		;将结果给Y
	SJMP	OUTG			;分支结束,跳转到出口
BR3:
	ADD		A,	#2			;X = X + 2
	MOV		60H,	A		;将结果给Y
OUTG:
	SJMP	$				;在此处死循环
  • 一定要仔细阅读注释的内容!!!

其中,BR1代表 X = 12 的情况;BR2代表 X > 12 的情况;BR3代表 X < 12的情况;

例题2

题目描述

  • ①将片内RAM的50H~5FH地址的区间的内容初始化为(0 ~ 15),即(50H) = 0,(51H) = 1…,②然后将该区间(50H ~ 5FH)的内容复制到片内RAM的(30H ~ 3FH)单元。

题解

	ORG		0000H
	AJMP	MAIN
	ORG		0030H			
MAIN:
	MOV		R7,		#16	;设置循环次数
	MOV		R0,		#30h;存储地址的起始位置
	MOV		A,		#0	;存储数的最小值
LOOP1:
	MOV		@R0,	A	;A中存的值放入R0处
	INC		A			;A = A + 1
	INC		R0			;R0 = R0 + 1
	DJNZ	R7,		LOOP1;(R7) = (R7)-1,若R7!=0,则跳转到LOOP1
	
	MOV		R0,		#50H;复制的起始地址
	MOV		R1,		#30H;粘贴的起始地址
	MOV		R7,		#16	;设置循环次数
LOOP2:
	MOV		A,		@R0	;R0中存的值放入A
	MOV		@R1,	A	;A中存的值放入R1处
	INC		R0			;R0 = R0 + 1
	INC		R1			;R1 = R1 + 1
	DJNZ	R7,		LOOP2;(R7) = (R7)-1,若R7!=0,则跳转到LOOP2
OUTG:
	SJMP $

例题3

题目描述

  • 电路如图所示,已知单片机的晶振频率是12MHZ,请编程实现发光二极管LED亮0.1秒,灭0.1秒的闪烁现象,要求采用模块化技术设计

在这里插入图片描述

题解

重要公式

  • T(机器周期) = 12 / ∫(晶振频率)

题目解析

  • 根据发光二极管的特性,P1.0若为高电平则二极管,P1.0若为低电平则二极管

  • 根据公式可得若晶振频率为12MHZ,则机器周期为1微秒

  • 题目要求使用模块化编程,也就是说要求使用子程序

代码

	ORG		0000H
	SJMP	MAIN
	ORG		0030H
MAIN:
	SETB	P1.0		;LED灭
LOOP:
	CLR		P1.0		;LED亮
	ACALL	DL100ms		;延时0.1s
	SETB	P1.0		;LED灭
	ACALL	DL100ms		;延时0.1s
	SJMP	LOOP		;循环控制LED的亮灭
DL100ms:
	MOV	R6,	#100		;外循环产生100ms的延时
DL1ms:					
	MOV	R7,	#200		;产生1μs的延时需要1个机器周期
DL5μs:
	NOP					;NOP指令为1个机器周期
	NOP		
	NOP
	DJNZ	R7,	DL5ms	;DJNZ为2个机器周期
	DJNZ	R6,	DL1ms
	RET					;子程序返回

代码解析

  • 程序采用一个内嵌循环设计。内循环(DL1ms)200次,每次循环消耗5个机器周期,也就是5微秒,所以总共消耗 200x5 = 1000微妙 = 1ms
  • 外循环100次,达到延时 100x1ms = 100ms = 0.1s 的效果;

更多例题有待更新…

在这里插入图片描述

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

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

相关文章

高完整性系统工程(九):Invariants

目录 1. INVARIANTS 1.1 例子 1.2 正式的证明 1. INVARIANTS 一个不变式需要满足以下三个属性&#xff1a; 当循环开始时&#xff0c;不变式是正确的在每一次循环迭代之后&#xff0c;不变式仍然是正确的当循环条件为假时&#xff0c;不变式能推出循环结束后的条件&#x…

刘知远团队提出:如何通过扩大高质量指导性对话数据集,来提高模型的性能和效率...

深度学习自然语言处理 原创作者 | 刘嘉玲 随着开源语言大模型(LLM)的百花齐放&#xff0c;模型的性能和效率关乎到产品的成本和服务体验的均衡。那么&#xff0c;有没有办法让语言大模型变得更高效、更优秀呢&#xff1f; 为了进一步提高开源模型的上限&#xff0c;清华大学的研…

数据库新闻速递 明白3中主流的数据迁移方法 (译)

头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共8…

Webstorm 支持微信小程序开发插件 Wechat mini program support

支持微信小程序插件安装&#xff1a; Wechat mini program support&#xff0c; 微信小程序语法支持&#xff0c;rpx 单位报错解决。 插件官方文档 Wiki - Gitee.com 安装方法&#xff1a; File-> Settings->Plugins 选择Marketplace: 输入Wechat ,搜索&#xff0c;然…

岭回归有看点:正则化参数解密,显著性不再成问题!

一、概述 「L2正则化&#xff08;也称为岭回归&#xff09;」 是一种用于线性回归模型的正则化方法&#xff0c;它通过在模型的损失函数中添加一个惩罚项来防止过拟合。L2正则化的惩罚项是模型参数的平方和&#xff0c;乘以一个正则化参数λ&#xff0c;即&#xff1a; L2正则化…

初阶二叉树的相关题目

前言&#xff1a; 前面我们介绍了初阶二叉树的相关知识&#xff0c;二叉树常考的还是链式二叉树&#xff0c;而且二叉树也会考很多选择题&#xff0c;本文重点是在给出一些常考的二叉树的性质定理推导和经典练习题目配合强化巩固知识。 目录 一、二叉树的常见性质定理 二、常…

你的业务被AI所取替的风险度有多高?AI社交、克隆人、角色扮演、代理人

hi&#xff0c;大家好&#xff0c;最近我们陆续会推出各种实验性项目&#xff0c;把我们在AIGC和数字体验上的思考进行验证&#xff0c;欢迎持续关注我们的进展。&#xff08;文末领取PDF&#xff09; 目前&#xff0c;已经有不少的例子证明了ChatGPT有多好用了。 亚马逊员工在…

定制比例阀控制放大器

定制比例阀控制放大器是为特定应用场景设计的定制化控制系统。它可以根据客户的需求和应用要求&#xff0c;配置输入输出及颤振频率等参数&#xff0c;对现有的控制器进行修改和优化&#xff0c;以满足特定的性能指标和功能要求。随着工业自动化技术的不断发展&#xff0c;定制…

关于安卓viewpager实现堆叠卡片交互

背景 长江后浪推前浪&#xff0c;无聊的需求一浪接一浪。 最近做到一个关于卡片堆叠的需求&#xff0c;觉得挺有意思&#xff0c;所以特此记录一下。 文末将附上源码链接 首先看设计图&#xff1a; 可以看到&#xff0c;是一个卡片堆叠的效果&#xff0c;关于这种UI的实现&…

Android系统安全技术---FBE密钥框架和技术详解

一、前言 用户数据加密是移动设备的重要功能&#xff0c;是使用对称加密算法对Android设备上的所有用户数据进行编码的过程&#xff0c;防止用户数据被未经授权的用户或应用程序访问。 本文是Android系统安全技术系列第二篇&#xff0c;主要介绍基于文件的加密技术。首先介绍An…

到底什么是“云手机”?

今天这篇文章&#xff0c;我们来聊一个很有趣的东东——云手机。 说到云手机&#xff0c;有些童鞋可能并不会觉得陌生。是的&#xff0c;它确实并不是一个新名词。早在2011年左右&#xff0c;国内就有厂商推出了云手机的概念。掐指一算&#xff0c;至今已经有12个年头了。 大家…

APP在应用市场内该如何做推广

苹果应用商城的自然流量都是通过精品推荐&#xff0c;畅销排行榜和搜索来获取的&#xff0c;此外&#xff0c;应用名称、副标题、应用截图视频、应用描述、用户评论、下载量、用户留存率还有曝光量&#xff0c;这些都是影响ASO优化的关键因素。 为了防止一些应用堆砌热词&…

传统设备充电接口如何升级成USB-C PD快充接口?

早在 2009 年开始&#xff0c;欧盟就致力于推动消费电子产品充电接口的统一进程&#xff0c;减少资源浪费推动绿色环保进程&#xff0c;同时充电配件通用化也为消费者带来更好的充电体验。2022 年 10 月 4 日&#xff0c;欧洲议会全体会议上表决通过&#xff0c;在 2024 年底之…

C++服务器框架开发8——日志系统LogFormatter_3/override/宏定义优化switchcase结构

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。 其教学视频见&#xff1a;[C高级教程]从零开始开发服务器框架(sylar) 上一篇&#xff1a;C服务器框架开发7——日志系统LogFormatter_2 C服务器框架开发8——日志系统LogFormatter_3/override/宏定义优化switchcase…

代码随想录算法训练营day60 | 84.柱状图中最大的矩形

代码随想录算法训练营day60 | 84.柱状图中最大的矩形 84.柱状图中最大的矩形解法一&#xff1a;单调栈解法二&#xff1a;暴力双指针(会超时)解法三:优化双指针 总结 最后一天打卡留念! 84.柱状图中最大的矩形 教程视频&#xff1a;https://www.bilibili.com/video/BV1Ns4y1o7…

国产化麒麟linux系统QtCreator和QtCreator编译的程序无法输入中文libfcitx最新版本编译1.2.7

1.问题描述 麒麟linux系统QtCreator和QtCreator编译的程序无法输入中文&#xff0c;网上找了很多的libfcitxplatforminputcontextplugin.so库都无法使用正常输入&#xff1b; Qt版本&#xff1a;5.9.6 麒麟系统版本&#xff1a;海光麒麟桌面版kylin V10 SP1 小版本号2203 X…

一个多功能(聚合)查询接口,实现模糊、分页、主键、排序以及多条件查询

一个多功能(聚合)查询接口&#xff0c;实现模糊、分页、主键、排序以及多条件查询 前言 写的啰嗦了点&#xff0c;看效果请直接忽略中间&#xff0c;直接看后半部分。 引个流&#xff0c;公众号&#xff1a;小简聊开发 概念 瞎编的名字&#xff0c;哈哈哈&#xff0c;我就勉强…

一道北大强基题背后的故事(二)——出题者怎么想的?

早点关注我&#xff0c;精彩不错过&#xff01; 上篇文章中&#xff0c;我们给出一道北大强基考试中的试题&#xff0c;计算[((1 sqrt(5)) / 2) ^ 12]&#xff0c;给出了一条没有任何数学直觉&#xff0c;纯硬算的弯路以及题目的参考答案&#xff0c;相关内容请戳&#xff1a;…

IronPDF 2023.6.10 FOR NET CRACK

适用于.NET的IronPDF 2023.6.10 添加新的注释API并改进图像压缩逻辑。 2023年6月2日-14:42新版 特点 添加了新的连续进给选项。例如用于生成收据文档。 添加了新的注释API&#xff0c;包括注释删除。 添加了删除书签的功能。 将内存使用率和性能提高了10%。 改进了图像…

全球加速AEB「强标」,15万元以下车型或将「释放」巨量需求

目前&#xff0c;智能驾驶技术升级&#xff0c;主要是在帮助中高端车型提升产品竞争力&#xff0c;同时为车企构建未来软件付费盈利模式的转型。 但另一方面&#xff0c;基础辅助驾驶&#xff0c;尤其主动安全&#xff0c;比如&#xff0c;AEB&#xff08;自动紧急制动&#xf…