网站大量收购闲置独家精品文档,联系QQ:2885784924

Lecture06汇编语言程序设计.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lecture06汇编语言程序设计

第五章 汇编语言程序设计 汇编语言程序设计 Assembling Language Programming 基本内容: 语句格式 伪指令 重点: 程序结构 程序流控制(条件、分支、循环,子程序,宏汇编) 程序设计方法 机器语言、汇编语言和高级语言 高级语言(High Level Language): 面向过程的语言,不依赖于机器,有很好的通用性和移植性。具有很高的程序设计效率 BASIC, C(++), VB, DELPHI, JAVA, HTML 汇编语言(Assembly Language) : 最接近于机器语言的低级语言。基本单位是机器指令。采用助记符编程,便于记忆。面向具体机器(CPU)的语言 。不具备通用性和移植性。设计员必须对机器的硬件和软件资源有足够的了解才能设计程序 汇编语言是各种系统软件如操作系统设计的基本语言 汇编语言编写的程序比高级语言编写的程序执行速度快,占内存少 汇编语言程序 —— 机器代码一一对应,程序流可控,速度快,用于编制系统程序、实时通信/控制/处理。 机器语言(Machine Language): 二进制表示的指令和数据序列 ——目标代码 从高级语言到计算机指令 编辑器(Editor) 程序设计(流程图) 编译器(Compiler) 高级语言程序(与机型无关) 汇编器(Assembler) 汇编语言(与机型有关) 链接器(Linker) 机器语言(待装配的BIN指令代码) (二进制) 可执行BIN指令代码(二进制) 4种基本的程序结构 用JMP @A+DPTR 实现多分支 先用无条件转移指令(如AJMP)按顺序组成一个转移表。 将转移表首地址装入数据指针DPTR中, 将分支序号装入累加器, 执行“JMP @A+DPTR”指令进入转移表, 再由“AJMP”指令转入对应程序段的入口,实现多路分支 KEYB5: MOV DPTR, #JMPTBL CLR C SUBB A, #0Ah RL A JMP @A+DPTR JMPTBL: AJMP AAA AJMP BBB ALMP CCC AJMP DDD AAA: BBB: CCC: DDD: 要求: 键入 10,转AAA 11,转BBB 12, 转CCC 13, 转DDD 注:AJMP指令占2字节 用JMP @A+DPTR 实现多分支 操作程序0 操作程序1 操作程序2 操作程序3 循环结构程序设计 基本特征:含有被重复执行的程序段 组成: 循环参数初始化部分 —— 进入循环之前给出循环程序所需的初始值(循环工作部分的初始值和循环结束条件的初始值) 循环工作部分(循环体)—— 被循环执行的程序段,不但完成循环程序的基本功能,可能还要对循环参数进行修改 循环控制部分 —— 检测循环条件是否得到满足,以便决定应继续循环还是应结束循环,常用循环控制方法: 计数器控制法 —— 适用于循环次数已知的情况 条件控制法 —— 适用于循环次数未知的情况 循环结束部分 —— 完成循环结束时的数据处理,结果存放等操作 DJNZ Rn,rel ;以工作寄存器作控制计数器。 DJNZ direct,rel ;以直接寻址单元作控制计数器 计数控制循环结构 特点是循环次数已知,初始化部分设定计数的初值 循环控制部分依据计数器的值决定循环次数,一般均设置为减“1”计数器,每循环一次自动减“1”,直到回“0”时结束循环。 MCS-51设有功能强的循环转移指令 例5.11:在BLOCK单元开始有一个无符号数数据块,其长度存于LEN单元中,试求出数据块中最大的数,并存入MAX单元。 程序: LEN DATA 20H MAX DATA 21H BLOCK DATA 22H CLR A MOV R2, LEN MOV R1, #BLOCK LOOP: CLR C SUBB A, @R1 JNC NEXT MOV A, @R1 SJMP NEXT1 NEXT: ADD A, @R1 NEXT1: INC R1 DJNZ R2, LOOP MOV MAX, A 软件延时一般DJNZ Rn, rel 指令构成 执行一个DJNZ指令需要两个机器周期 软件延时

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档