第六章汇编语言程序设计
更新时间:2023-05-27 15:03:01 阅读量: 实用文档 文档下载
第六章汇编语言程序设计 汇编语言的基本知识
常用汇编程序设计方法
汇编语言的基本知识
汇编语言的基本知识
汇编语言的格式
–LABLE:OPCODE ,
汇编语言的构成
–指令性语句
–指示性语句:伪指令
程序设计流程OPRAND ;OMMENT
伪指令
ORG : ORG 2000H
END
EQU:AAA EQU 20H
–MOV A,20H (MOV A,AAA)
DATA (可前可后)
DB 、DW
BIT :A1 BIT 00H(MOV C,A1)
程序设计流程
明确要求和要达到的目的确定解决问题的计算方法和步骤画出流程图分配内存地址按流程图编写程序上机汇编、调试、修改及最后确定源程序
$2 简单程序(顺序结构) 大量使用数据传送类指令
注意正确选择指令以提高效率
编程将20单元内的两个BCD熟变换成ACSII码放在20H, 21H单元内(EX2.ASM)
将20H单元内两个BCD码变换成相应
的ASCII码放在21H:22H中
Org 0hLjmp 2000hORG 2000HMOV R0,#22HMOV @R0,#00MOV A,20HXCHD A,@R0ORL 22H,#30HSWAP AORL A,#30HMOV 21H,ASJMP $END MOV A,20HMOV B,#10HDIV ABORL B,#30HMOV 22H,BORL A,#30HMOV 21H,ASJMP $END ;15BYTE 14T
求16位二进制补码的绝对值MOV A,20H
CPL A
ADD A,#01H ;INC A
MOV 20H,A
MOV A,21H
CPL A
ADDC A,#0
ANL A,#7FH
MOV 21H,A
SJMP $
$6.3 分支程序
根据程序要求无条件或有条件改变程序执行执行的顺序,选择程序的流向. 特点:程序中含有转移类指令 关键:正确选用转移指令
正确运用转移指令
无条件分支程序
–程序设计者事先设计好的
–LJMP、AJMP 、SJMP
有条件分支程序
–根据已经执行的程序对标志位、ACC或内部RAM的某些位的影响结果决定程序的流向–JZ/JNZ、CJNE、DJNZ、位控制转移类指令
注意
使用条件转移指令形成分支前一定安排可供条件转移指令进行判别的条件。–JC LOOP
正确选定所用的转移条件及转移目标地址
$循环程序
循环初始化
–循环次数计数器,工作寄存器设初值等 循环体
–尽量简练;注意地址指针的修改 循环控制
–检查结束条件,及时退出循环
注意循环嵌套
允许外重循环嵌套内重循环
循环体不能交叉
不能从循环程序外部跳入循环程序内部
例
例:200名学生参加考试,成绩放在8031的外部RAM的一个连续存储单元,95~100分颁发A级证书,90~94分颁发B级证书,编一程序,统计获A、B级证书的人数。将结果存入内部RAM的两个单元。
注意地址指针的分配
ORG 0030H
EG XDATA 1000H
GA DATA20H
GBDATA 21H
MOV GA,#00
MOV GB,#00
MOV DPTR,#EG
MOV R2,#200
LOOP:MOVX A
@DPTR
CJNE A,#95, LOOP1 LOOP1: JNC NEXT1 CJNE A,#90,LOOP2LOOP2: JC NEXTINC GBSJMP NEXTNEXT1: INC GANEXT: INC DPTR DJNZ R2,LOOP SJMP $END ,
数据排序
常用气泡法(两两比较法)它先使E100和E99进行比较,若E100>E99,则两数交换,否则不动,然后E99和E98进行比较,按同样的原则,决定是否交换,一直比较下去,最后完成E2和E1的比较及交换。经过N-1次比较后,E1位置必然得到数组中的最大值。犹如一个气泡冒到水顶。如此下去,经过N-1次便完成N个数据的排序。
例:100个数据,从小到大进行排
序
MOV R2,#100
BUB:MOV R0,#20H
CLR F0
DEC R2
BL:CJNE R2,#0,BB
MOV 7F,R2
MOV 20H,@R0
MOV A,@R0
INC R0
MOV 21H,@R0 CJNE A,21H,LOPLOP: JC BMOV @R0,20HDEC R0 MOV @R0,21HINC R0SETB F0B:DJNZ 7FH,BLJB F0,BUBBB:SJMP $
$查表程序的设计
主要用于:复杂代码转换显示数据补偿:传感器补偿复杂函数计算: Y=SIN(X)
查表指令
在51中有两条查表指令:MOVC A,@A+DPTR
使用 MOVC A,@A+PC须注意:
1. 使用传送指令将数据表格项数送入ACC
2. ADD A,#DATA指令对A进行修改:PC+DATA=表格首地址
3. MOVC A,@A+PC 完成查表.
例1 ADD A,#01H
MOVC A,@A+PC
RET
DB
00,01,04,09,10H,19H,24H,31H,30H,51H…
例2 设一巡回报警系统,对16路输入进行控制,现根据测量路数,找出每
路的最大允许值.若大于允许值就报警.
TB3:
TAB3:DW 1520,3721,4256 ; MOV A,R2ADD A,R2MOV R3,AADD A,#6MOVC A,@A+PCXCH A,R3ADD A,#3MOVC A,@A+PCMOV R4,ARET256 表格最大长度
正在阅读:
第六章汇编语言程序设计05-27
TEM-透射电镜习题答案及总结04-07
云南世珍泉饮用水有限公司《员工手册》05-20
2009年安徽高考满分作文(3篇)12-26
材料类SCI期刊及影响因子04-18
考前色彩感觉的训练与提高09-01
如何加强林业管理及可持续发展的方法03-14
芳纶纤维10-04
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 汇编语言
- 程序设计
- 【幼儿园】艺术活动:会变的图形(绘画)
- 2014年中考政治真题,按知识点分类汇编,全面建设小康社会,(选择题)
- 常用危险化学品贮存通则
- 2014世界旅游旅行大会演练方案
- 表1-1. 义务教育课程设置及比例
- 区直工委2011年上半年工作总结
- 怎样约出女孩子_泡妞宝典
- 山西 导游词 平遥古城
- 完善江汉油田HSE管理体系的几点认识
- 服务市场研究及其营销策略探讨开题报告范文格式
- 欧堡利亚实业有限公司全面预算管理问题的研究
- 电动线操纵特技模型飞机入门训
- 第八课时《用计算器计算》课后练习
- 凡客诚品营销策略分析
- 高台三中2013年上半年工会工作总结
- 广州房市_番禺区商品住宅可售(存量)面积(附房地产财务管理)_九舍会智库
- 初级维修电工试题题库(附答案)
- web网页测试用例(非常实用)
- 光耐尔2011年11月LED显示屏报价
- 法学概论案例分析练习