第4章汇编语言程序设计伪指令的功能和应用程序设计的步骤和基本方法汇编的概念顺序程序分支程序循环程序子

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
格式:字符名称 BIT 位地址
AQ BIT P0.0 DEF BIT 00H
把P0.0的位地址赋给字符AQ,把位地址00H赋 给字符DEF。在其后的编程中,AQ可作P0.0使用, DEF可作位地址30H使用。
7.定义空间伪指令:
格式:〔标号:〕DS 表达式 功能:从标号指定的地址单元开始,保留若干个存储
常用的伪指令有以下几种:
⒈ 起始伪指令 ORG(Origin)
格式:ORG 16位地址 功能:规定ORG下面第一条指令的起始地址为
ORG指定的16位地址。
ORG 0100H START:MOV A,#05H
ADD A,#08H MOV 20H,A
①MOV A,#05H指令的第一个字节地址为0100H, ②标号START代表的地址为0100H。
⒉ 结束伪指令 END
格式:END 功能:汇编语言源程序的结束标志。
在END后面的指令,不被汇编。
⒊ 等值伪指令 EQU(Equate)
格式:字符名称 EQU 数据或符号
例如: PW EQU 2000H MOV DPTR, #PW ;(DPTR)=2000H
这里将PW等值为数值2000H,在指令中PW就可 以代替2000H来使用。
第二节 汇编语言程序设计举例
一. 顺序程序
顺序程序是指按顺序依次执行的程序, 顺序程
序结构虽然比较简单,但它是构成复杂程序的基础。
• 【例4-2】编写16位二进制数求补程序。 • 设16位二进制数存放在R1、R0中,求补以后的
结果则存放于R3、R2中。
CONT:
ORG 0200H
MOV A,R0 CPL A ADD A,#1 MOV R2,A MOV A,R1 CPL A ADDC A,#80H MOV R3,A RET
ANL A, #0F0H ;取出十位
SWAP A
;高4位 低4位
MOV B, #0AH
MUL AB
;十位乘10(A)=0AH
MOV R3,A ;积暂存进R3
MOV A, R2 ;再取入口数据
ANL A, #0FH ;取出个位
ADD A, R3 ;(A)=12H
MOV R2,A ;结果R2
END
;
二.分支程序
根据不同条件转向不同的处理程序,这结构 的程序称为分支程序。
80C51指令系统中的条件转移指令、比转移 指令和位转移指令,可以实现分支程序。
【例4-4】 已知X、Y均为8位二进制有符号数, 分别存在30H,31H中,试编制能实现下列符号函 数的程序:
实现程序如下:
【例4-5】将ASCII码转换为十六进制数。设ASCII 码放在累加器A中,转换结果放到B中。
特点: 一条指令对应一组二进制代码
3.高级语言--C语言
4.1.2 程序设计的基本方法
⑴ 分析问题,确定算法或解题思路 ⑵ 画流程图 ⑶ 编写源程序 ⑷ 汇编和调试
流程图符号和说明:
起止框: 处理框 流程线
判断框 连接点
P73页看判断框的使用
4.1.3 伪指令
伪指令:在汇编时起控制作用,自身并不产生机器码, 而仅是为汇编服务的一些指令,称为伪指令。
格式:DW 16位二进制数表
功能:从指定的地址单元开始,定义若干个 16位数据。数据之间用 ,号。
举例: ORG 2000H
DATA: DW 4579H,3CH 汇编后(2000H)=45H (2001H)=79H
(2002H)=00H (2003H)=3CH
Hale Waihona Puke 6. 定义位地址伪指令BIT
功能:将位地址赋予所规定的字符名称。
PQ EQU R0 MOV A,PQ
;PQ=R0 ;A (R0)
这里将PQ等值为汇编符号R0,在指令中PQ就 可以代替R0来使用。
4. 定义字节伪指令DB(Define Byte)
格式:〔标号:〕DB 8位二进制数表
功能:从指定的地址单元开始,定义若干 个8位 内存单元的数据。数据与数据之间用“,”分
割。
例如:2000H:DB 0,1,4,9……81
例如: ORG 4000H
TAB: DB 73H,45,A,“A”,2,“2” TAB1:DB 101B
以上指令经汇编后,将对4000H开始的若干内存单 元赋值。 (4000H)=73H,(4001H)=2DH(注:45的16进 制数),
5. 定义字数据伪指令DW(Define Word)
§4-1 程序设计概述
4.1.1 程序设计语言简介 1.机器语言(用二进制或十六进制的代码来表示
指令或数据) 举例: 将寄存器R0中的值送给累加器A 机器语言 E8
2.汇编语言 标号:操作码 [目的操作数,源操作数];注释
优点: 便于记忆、阅读;占用内存少。 缺点:低级语言--面向机器,不同机型有不同的语言
单元作为备用的空间,保留的个数由表达式指定。
ORG 1000H BUF:DS 05H
4.1.4.汇编
将汇编语言源程序转换为计算机所能识别 的机器语言代码程序的过程称为汇编。
汇编可分为:
⒈ 手工汇编 ⒉ 计算机汇编(keil软件和各种实验箱
附带的软件)
【例4-1】对下段程序进行手工汇编。
P52页 见AJMP addr11
解: 0~9的ASCII码30H~39H为,将ASCII码减30H(0~9)。 A~F的ASCII码41H~46H为,37H(A~F)就可获得对应
的十六进制数。
散转程序是一种并行多分支程序。
见前面学过的内容:按0、1、2、3发生三角波、 方波、锯齿波、正弦波。
;读低8位 ;取反 ;加1 ;存低8位 ;读高8位 ;取反 ;加进位及符号位 ;存高8位 ;
注意;这里不能用INC指令,因为INC指令不影响标志位。
【例4-3】 :将R2中BCD码数转为二进制数存进R2。
方法:将十位取出,乘10, 加上个位。 (设R2中存放的数是19)
ORG 2000H
BCD2:MOV A, R2 ;取入口数据
相关文档
最新文档