《汇编程序设计》PPT课件.ppt
《《汇编程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《汇编程序设计》PPT课件.ppt(31页珍藏版)》请在三一办公上搜索。
1、3.4 汇编语言程序设计,80C51汇编语言语句结构的基本格式 伪指令的功能和应用 汇编的概念 程序设计的步骤和基本方法 顺序程序 分支程序 循环程序 查表程序 散转程序,3.4.1 汇编程序伪指令,在汇编时起控制作用,自身并不产生机器码,而仅是为汇编服务的一些指令,称为伪指令。伪指令不属于80C51指令系统。常用的伪指令有以下几种:,起始伪指令 ORG(Origin),功能:规定ORG下面目标程序的起始地址。,格式:ORG 16位地址,功能:将一个数据或特定的汇编符号赋予规定 的字符名称。,结束伪指令 END,功能:汇编语言源程序的结束标志。在END后面的指令,汇编程序不再处理。,格式:EN
2、D,等值伪指令 EQU(Equate),格式:字符名称 EQU 数据或汇编符号,数据地址赋值伪指令 DATA,格式:字符名称 DATA 表达式,功能:将数据地址或代码地址赋予规定的 字符名称。,定义字节伪指令DB(Define Byte),格式:DB 8位二进制数表,功能:从指定的地址单元开始,定义若干 个8位内存单元的数据。数据与数据之间用“,”分割。,格式:字符名称 BIT 位地址,定义字伪指令DW(Define Word),格式:DW 16位二进制数表,功能:从指定的地址单元开始,定义 若干个16位数据。,定义位地址伪指令BIT,功能:将位地址赋予所规定的字符名称。,汇编语言基本概念,将
3、汇编语言源程序转换为计算机所能识别的机器语言代码程序的过程称为汇编。汇编可分为:手工汇编 计算机汇编,汇编和调试,程序设计的基本方法,编写程序要求:不仅要完成规定的功能任务,而且还要求:执行速度快、占用内存少、条理清晰、阅读方便、便于移植、巧妙而实用。一般应按以下几个步骤进行:,分析问题,确定算法或解题思路,画流程图,编写源程序,顺序程序是指按顺序依次执行的程序,也称为简单程序或直线程序。顺序程序结构虽然比较简单,但也能完成一定的功能任务,是构成复杂程序的基础。,3.4.2 顺序程序,CONT:MOV A,R0;读低8位CPL A;取反ADD A,#1;加1MOV R2,A;存低8位MOV A
4、,R1;读高8位CPL A;取反ADDC A,#80H;加进位及符号位MOV R3,A;存高8位RET;,【例】已知16位二进制负数存放在R1R0中,试求其补码,并将结果存在R3R2中。,解:二进制负数的求补方法可归结为“求反加1”,符号位不变。利用CPL指令实现求反;加1时,则应低8位先加1,高8位再加上低位的进位。注意这里不能用INC指令,因为INC指令不影响标志位。,程序如下:,根据不同条件转向不同的处理程序,这种结构的程序称为分支程序。80C51指令系统中的条件转移指令、比较转移指令和位转移指令,可以实现分支程序。,3.4.3 分支程序,S0单独按下,红灯亮,其余灯灭;S1单独按下,绿
5、灯亮,其余灯灭;其余情况,黄灯亮。,【例】已知电路如图4-5所示,要求实现:,解:程序如下SGNL:ANL P1,#11100011B;红绿黄灯灭 ORL P1,#00000011B;置P1.0、P1.1输入态,P1.5P1.7状态不变SL0:JNB P1.0,SL1;P1.0=0,S0未按下,转判S1 JNB P1.1,RED;P1.0=1,S0按下;且P1.1=0,S1未按下,转红灯亮YELW:SETB P1.4;黄灯亮 CLR P1.2;红灯灭 CLR P1.3;绿灯灭 SJMP SL0;转循环SL1:JNB P1.1,YELW;P1.0=0,S0未按下;P1.1=0,S1未按下,转黄灯
6、亮GREN:SETB P1.3;绿灯亮 CLR P1.2;红灯灭 CLR P1.4;黄灯灭 SJMP SL0;转循环RED:SETB P1.2;红灯亮 CLR P1.3;绿灯灭 CLR P1.4;黄灯灭 SJMP SL0;转循环,课堂练习题:电路及灯亮灭要求同上述【例】题,其中第3、4两条指令JNB P1.0和JNB P1.1按下列要求修改,试重新编程。JBP1.0,JBP1.1,JBP1.0,JNB P1.1,JNB P1.0,JBP1.1,,循环程序一般包括以下几个部分:循环初值;循环体;循环修改;循环控制;以上四部分可以有两种组织形式,其结构如下图所示。,3.4.4 循环程序,【例】设X
7、i均为单字节数,并按顺序存放在以50H为首地址的内RAM存储单元中,数据长度(个数)N存在R2中,试编程求和S=X1+X2+XN,并将S(双字节)存放在R3R4中,(设S65536)。,解:程序如下:SXN:MOV R2,#N;置数据长度(循环次数)MOV R3,#00H;和单元(高8位)清0 MOV R4,#00H;和单元(低8位)清0 MOV R0,#50H;求和数据区首址LOOP:MOV A,R4;读前次低8位和 ADD A,R0;低8位累加 MOV R4,A;存低8位和 CLR A;ADDC A,R3;高8位加进位 MOV R3,A;存高8位和 INC R0;指向下一数据 循环修改 D
8、JNZ R2,LOOP;判N个数据累加完否?循环控制 RET;退出循环 退出循环,置循环初值,循环体,【例】编写延时10ms子程序,fosc=12MHz。解:fosc=12MHz,一个机器周期为1s。DY10ms:MOV R6,#20;置外循环次数DLP1:MOV R7,#250;置内循环次数DLP2:DJNZ R7,DLP2;2机周250=500机周 DJNZ R6,DLP1;500机周20=10000机周 RET;说明:MOV Rn指令为1个机器周期;DJNZ指令为2个机器周期;RET指令为2个机器周期;(2机周250)+1+220+1+21s/机周=10063s10ms【课堂练习题】按下
9、列要求编写延时子程序:延时2ms,fosc=6MHz;延时5ms,fosc=12MHz;延时10s,fosc=12MHz;,设80C51单片机的P1口作为输出口,经驱动电路74LS240(8反相三态缓冲/驱动器)接8只发光二极管,如下图所示。当输出位为“1”时,发光二极管点亮,输出位为“0”时为暗。试编程实现:每个灯闪烁点亮10次,再转移到下一个灯闪烁点亮10次,循环不止。,【例】编制一个循环闪烁灯的程序。,FLASH:MOV A,#01H;置灯亮初值FSH0:MOV R2,#0AH;置闪烁次数FLOP:MOV P1,A;点亮 LCALL DY1s;延时1s MOV P1,#00H;熄灭 LC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编程序设计 汇编程序 设计 PPT 课件
链接地址:https://www.31ppt.com/p-5541231.html