- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第4章汇编语言程序设计简介;4.1 伪指令;例:;二、等值指令EQU;三、定义字节指令DB
指令格式:
[标号:]DB8位二进制数表
功能:把8位二进制数表依次存入从标号开始的连续的存储单元中。
格式中,标号区段可有可无,DB指令之后的8位二进制数表是字节常数或用逗号隔开的字节串,也可以是用引号括起来的ASCII码字符串(一个ASCII字符相当于一个字节)。例:;ORG 1000H;四、定义字指令DW;五、汇编结束指令END;4.2 汇编语言程序设计;程序如下:
START:MOV R0, #41H ;将被加数地址送数据指针R0MOV R1, #51H ;将加数地址送数据指针R1;正确程序如下:START: CLR C;例2将两个半字节数合并成一个一字节数。
设内部RAM40H(高4位),41H(低4位)单元中分别存放着8位二进制数,要求取出两个单元中的低半字节,并成一个字节后,存入50H单元中。;程序如下:;4.2.2 分支程序设计;例3 x,y均为8位二进制???,设x存入R0,y存入R1,求解:y=syn(x);程序如下:;程序如下:;例4比较两个无符号数的大小。
设外部RAM的存储单元ST1和ST2中存放两个不带符号的二进制数,找出其中的大数存入外部RAM中的
ST3单元中。;程序如下:;SUBBA,R2;两数比较
JNCBIG2;若第二个数大,则转XCHA,R2;第一个数大
BIG1:MOVDPTR,#ST3
MOVX@DPTR,A;存大数RET
BIG2:MOVXA,@DPTR;第二个数大SJMPBIG1
RET;4.2.3循环程序设计;循环程序一般由四个主要部分组成:
初始化部分:为循环程序做准备,如规定循环次数、给各变量和地址指针预置初值。
处理部分:为反复执行的程序段,是循环程序的实体,也是循环程序的主体。
循环控制部分:这部分的作用是修改循环变量和控制变量,并判断循环是否结束,直到符合结束条件时,跳出循环为止
结束部分:这部分主要是对循环程序的结果进行分析、处理和存放。;例5工作单元清零。
在应用系统程序设计时,有时经常需要将存储器中各部分地址单元作为工作单元,存放程序执行的中间值或执行结果,工作单元清零工作常常放在程序的初始化部分中。
设有50个工作单元,其首址为外部存储器8000H单元,则其工作单元清零程序如下:;CLEAR:CLRA;例6设在内部RAM的BLOCK单元开始处有长度为
LEN个的无符号数据??,试编一个求和程序,并将和存入内部RAM的SUM单元(设和不超过8位)。;例6设在内部RAM的BLOCK单元开始处有长度为
LEN个的无符号数据块,试编一个求和程序,并将和存入内部RAM的SUM单元(设和不超过8位)。
BLOCKEQU20H;二、多重循环;例710秒延时程序。;上例程序中采用了多重循环程序,即在一个循环体中又包含了其它的循环程序,这种方式是实现延时程序的常用方法。使用多重循环时,必须注意:
(1)循环嵌套,必须层次分明,不允许产生内外层循环交叉(2)外循环可以一层层向内循环进入,结束时由里往外一
层层退出。
(3)内循环可以直接转入外循环,实现一个循环由多个条件控制的循环结构方式。;例8 在外部RAM中,BLOCK开始的单元中有一无符号数据块,其个数为 LEN个字节。试将这些无符号数按递减次序重新排列,并存入原存储区。
ORG 1000H
START:MOV DPTR,#BLOCK;置地址指针;LOOP0:CLRF0 ;交换标志清0MOVR0,DPL;
MOVR1,DPL;置相邻两数地址指针低字节INCR1
MOVR6,R7 ;置内循环计数器初值LOOP1:MOVXA,@R0;取数;NEXT:JCNOCHA;Cy=1,则前者大于后者,不必交换SETBF0;否则,置交换标志
MOVX@R0,A;
XCHA,B;两数交换,大者在前,小者在后MOVX@R1,A;
NOCHA:INCR0
INCR1;修改指针
DJNZR6,LOOP1;内循环未完,则继续JNBF0,EXIT;若从未交换,则结束DJNZR7,LOOP0;外循环未完,则继续
EXIT: RET;图5.5;例9设某系统的模数转换器是ADC0809,口地址为7FFFH,它的转换结束信号 EOC连接到8031的P1.
您可能关注的文档
最近下载
- 中文TakenateD-120NforPETfilmv4(3FCL).pdf VIP
- 30万吨年硫铁矿制酸设备资料.doc VIP
- 《汽轮机原理》习题及答案.doc VIP
- NB/T 20308-2024 核电厂核安全相关厂房地基基础设计规范.pdf VIP
- 二建继续教育考试题及答案.doc VIP
- 中西医结合妇产科学知识点.docx VIP
- 被执行人生活费申请书范文.docx VIP
- 2025年二级建造师继续教育考试模拟题库及解析答案.docx VIP
- 住院医师规范化培训结业考核临床实践能力考核规程(骨科)全套资料.pdf VIP
- 2025年重庆市政府采购评审专家考试试题及答案.docx VIP
原创力文档


文档评论(0)