如何将閃迪内存H当前段的2040H和2041H单元中的两个字节交换

内容提示:单片机原理及其应用 課件 教学PPT 作者 陈立周 陈宇 第3章

文档格式:PPT| 浏览次数:0| 上传日期: 15:39:13| 文档星级:?????

文档格式:PPT| 浏览次数:1| 上传日期: 02:25:40| 文档星级:?????

全文阅读已结束如果下载本文需要使用

该用户还上传了这些文档

第三章 汇编语言程序设计,第一节 彙编语言程序的格式 第二节 伪指令 第三节 汇编语言程序的编写步骤及基本结构 第四节 程序设计举例,本章要点,本章介绍 汇编语言程序的书写格式、程序的基本结构以及程序的编写步骤通过一些具体范例,掌握并熟悉各种指令的使用条件指令的灵活运用以及编写程序的方法與技巧。,第一节 ;累加到41H JNC NEXT ;是否有进位 INC 42H ;有进位42H加1 NEXT: MOV 41H,A ;将和存入41H INC R1 DJNZ R2,LOOP LJMP $ END,标号:代表该行指 令所在的地址结 尾应加一冒号,操作码:助记符或伪指令的符号。,操作数:操作所需要的数据或数据的存储位置来源,注释:对语句的说明也可不加注释,,,,,,返回本章首页,第二节 伪指令,伪指令不执行任何操作,汇编时也不生成目标程序它仅仅提供对汇编的要求。汇编成机器语言后伪指令就不存在了。以下为常用的伪指令: ORG(Origin)::指明汇编起始點地址 END:指明源程序至此结束。 EQU(Epual):赋值伪指令可对地址标号进行赋值。 DB(Define Byte):定义从指定标号地址开始所存放的字节数据多字节时各字節间用逗号隔开。 DW(Define Word):定义从指定的标号地址开始所存放的字数据。跟DB一样输入几个字时各字间要用逗号隔开。 DS(Define Storage) :定义存储区表示从標号所指的存储单元开始,保留的閃迪内存H单元数量以供程序使用。,返回本章首页,第三节 汇编语言程序的编写步骤及基本结构,汇编语言程序基本结构有三种 顺序结构 分支结构 循环结构 一、顺序结构 @DPTR,A SJMP $,,,,,,二、分支结构 指程序中具有转移指令可根据转移条件决定是转移还是继续執行下一条指令。,几种分支结构程序的框图,分支结构的程序举例 例3-2 有甲乙两数存于41H和42H存储单元运算符号的ASCII码存于40H单元,编写一根据40H的符號对甲乙两数进行相应运算的程序;井将运算结果存于43H单元。 ORG 0000H LJMP 0100H ORG ;2DH若不是存+、-号可使43H置FFH,,,,,,三、循环结构 循环结构由四个环节组成。 1.初始化部汾:对循环体中参加操作的有关参数、地址等赋以初始值并指定循环结束条件。 2.循环体部分:指每次循环都需要重复执行的程序段 3.修妀初始值:每次循环结束都要对初始值进行修改,特别是判断结束条件的参数每经一次循环后都要作相应的修改,以便决定是否结束循環 4.结束判断部分:检查结束条件是否满足,若条件满足停止循环否则返回继续执行循环体。,循环结构框图 图中每执行一次循环体后嘟要检查结束条件是否满足,若条件满足停止循环否则返回继续执行循环体。 右边两图区别为左图是先执行循环体,然后再判断结束條件右图是先判断结束条件,如果满足结束条件就不再执行循环体,直接退出循环 ,循环结构的程序举例 例3-3 以上程序执行的时间近似為2秒,如要准确计算还需考虑执行对R5、R6、R7的赋值指令所需的时间、RET返回指令的时间等等,返回本章首页,第四节 程序设计举例,一、多字节加法程序 例3-5 两个10字节数,分别从存储单元0801H、和0901H开始存放先存低字节后存高字节,求其和并存于乙数原来所在的单元,多字节加法的程序 0100 ORG 900801 MOV @R1,A ;存朂高字节进位位 0118 80FE SJMP $ ;结束,二、数制变换 在应用程序中常常需要对数制进行变换,为方便起见可预先把各种变换编成子程序需要时只要用一条調用指令即可完成,例如将十六进制数转换为BCD码、十进制数转换为ASCII码等等 例3-6 将30H中的十六进制数转换为BCD码,并存于40H、41H 主程序:入口条件為待转换的十六进制数存R1 0100 ;十位个位合并存R3 200F 22 RET,三、求最大值或最小值 1.无符号数求最大值与最小值 例3-7 在以2042H为首地址的存储单元中,连续存放一组單字节无符号数数据个数存于2041H单元,从中找出最大数并存于2040H,无符号数求最大值或最小值的程序 0100 ORG 902041 MOV DPTR,# E0 MOVX

我要回帖

更多关于 閃迪内存H 的文章

 

随机推荐