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

第四章 汇编语言程序设计xin.ppt

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

第四章 汇编语言程序设计 4.1 汇编语言 例4:已知片内RAM 40H 开始的两个单元中各存放有一个8位无符号二进制数,要求找出其中的大数并存入片内RAM 50H单元中。 分析:将两数相减,用进位标志C做为分支转 移的条件就很容易地找出其中的大数。 ORG 0000H CLR C MOV R0, # 40H ;第一个数地址送R0中 MOV A, @R0 ;取第一个数 INC R0 ;R0指向第二个数地址 SUBB A, @R0 ;两数比较 JC BIG ;第二个数大(C=1)转BIG DEC R0 ;R0指向第一个数地址 BIG: MOV 50H , @R0 ;存大数 SJMP $ ;等待 END ;结束 例5:设变量 x 以补码的形式存放在片内RAM的30H单元,变量 y 与 x 的关系是:当 x 大于0时,y =x;当 x =0时,y =20H;当 x 小于0时,y =x+5。编制程序,根据 x 的大小求y并送回原单元。 START: MOV A, 30H JZ NEXT ANL A, #80H ;判断符号位 JZ LP MOV A, #05H ADD A, 30H MOV 30H, A SJMP LP NEXT: MOV 30H, #20H LP: SJMP $ 二. 多分支程序(又称为散转程序) 通常采用查散转表法,按分支号进行转移。 使用的指令是JMP @ A+DPTR 并配合 AJMP或LJMP 查散转表法的多分支程序结构: …… MOV DPTR, #TABLE ; 散转表首地址(基址) RL A ; 分支号乘2形成变址值 JMP @A+DPTR TABLE: AJMP K0 AJMP K1 AJMP K2 AJMP K3 K0: …… K1: …… K2: …… K3: …… 散转表 各功能程序入口 注意: AJMP指令的转移范围不超出2KB字节空间,如各分支程序比较长,在2KB范围内无法全部存放,应改为LJMP(指令长度为3字节)。 4.3.3 循环程序 循环程序由4部分组成: 1) 循环初始化 设置循环的初始状态,位于循环程序的开头位置。 2)循环处理及修改 循环程序的主体部分,是通过反复执行来完成数据的具体处理及修改,位于循环体内。 3)循环控制 也在循环体内,是用于控制循环的继续与否。 4)循环结束 通常位于循环体后,是用来存放循环处理的最终结果及恢复各寄存器与工作单元的原始值。 循环结构一般有两种: 先进入处理部分,再控制循环; 即先执行后判断。至少执行一次循环体 先控制循环,再进入处理部分; 即先判断后执行。循环体的执行取决于判断结果。 开始 设置循环初值 循环处理 循环修改 结束处理 结束 循环结束? Y N 开始 设置循环初值 循环处理 循环修改 结束处理 结束 循环结束? N Y 先执行后判断 先判断后执行 一. 先执行后判断 1、延时程序 若晶振频率为12MHz,则一个机器周期为1μs。 执行一条DJNZ指令需要2个机器周期,即 2μs。 采用循环计数法实现延时,循环次数可以通过计算获得,并选择先执行后判断的循环结构。 1)? 单循环延时: DELAY: MOV R7,#10 ; 1T DJNZ R7,$ ; 2T △t=(2×10+1) ×1μs=21μs * * ● 机器语言 ● 汇编语言 ● 高级语言 4.1.1 计算机的程序设计语言种类 一、机器语言 是一种能被计算机直接识别和执行的机器级语言。 有两种二进制和十六进制两种表示形式。 不易被人们识别和读写,不方便进行程序设计。 二、汇编语言 是一种代替机器语言进行程序设计的语言,

文档评论(0)

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

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

1亿VIP精品文档

相关文档