第3章汇编程序设计学习教案_第1页
第3章汇编程序设计学习教案_第2页
第3章汇编程序设计学习教案_第3页
第3章汇编程序设计学习教案_第4页
第3章汇编程序设计学习教案_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1第第3章汇编程序章汇编程序(hu bin chn x)设计设计第一页,共47页。第1页/共47页第二页,共47页。连接(linji)/定位器L51汇编语言(hu bin y yn)源程序汇编器A51符号(fho)转换程序OHS51绝对地址目标程序 .BINC语言程序浮动地址目标程序编译器C51 HEX图 3-1 两种语言源程序转换成目标程序第2页/共47页第三页,共47页。 汇编: 将汇编语言源程序转换成机器语言目标程序(m bio chn x)的过程称为汇编。(翻译)汇编程序: 能将汇编语言源程序转换成机器语言目标程序(m bio chn x)的系统软件称为汇编程序。 (翻译官) 汇

2、编语言源程序:用户用汇编语言助记符编的应用程序。第3页/共47页第四页,共47页。2.机器汇编 用计算机中的汇编程序对用户源程序进行汇编。 用机器汇编要提供给汇编一些信息(xnx),遵循汇编程序的一些约定。这些由伪指令指定。 目前很多公司将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,如WAVE、KEIL 。 WAVE 、KEIL集成软件的使用见教材附录。第4页/共47页第五页,共47页。1.确定方案和计算方法2.了解应用系统的硬件配置、性能指标。3.建立系统数学模型,确定控制算法和操作步骤。4.画程序

3、流程图, 确定程序的流向。5. 编制源程序。 (1)合理分配(fnpi)存储器单元和了解I/O接口地址。 (2)按功能设计程序,明确各程序之间的相互关系。 (3)用注释行说明程序,便于阅读和修改调试和修改。第5页/共47页第六页,共47页。第6页/共47页第七页,共47页。第7页/共47页第八页,共47页。4保留字节 标号:DS (数值表达式)作用: 指示(zhsh)在程序存储器中保留以标号为起始地址的若干字节单元,其单元个数由数值表达式指定。例如 L1:DS 32 ; 从L1地址开始保留32个存储单元。第8页/共47页第九页,共47页。6. 6. 位定义位定义(dngy) (dngy) 标号

4、标号 BIT BIT 位地址位地址 作用:作用: 同同EQUEQU指令,不过定义指令,不过定义(dngy)(dngy)的是位操作地的是位操作地址。址。例如例如 AIC BIT P1.1 AIC BIT P1.1。7. 汇编结束(jish) END作用: 指示源程序段结束(jish)。 END指令放在程序的最后。A51汇编程序还有一些其它的伪指令,列在教材表3-1中,以备查阅。第9页/共47页第十页,共47页。第10页/共47页第十一页,共47页。第11页/共47页第十二页,共47页。 ORG 0000H MOV A,R4 JB ACC.7, CPLL ;判符号位 SJMP $ ;正数的补码原码

5、(yun m)CPLL: MOV A,R5 ;取低字节 CPL A ADD A,#1 ;低字节变补 MOV R5,A MOV A,R4 ;取高字节 CPL A ADDC A,#0 ;高字节变补 ORL A, #80H ; 恢复负号 MOV R4,A SJMP $第12页/共47页第十三页,共47页。第13页/共47页第十四页,共47页。例3-5 设变量放在片内RAM的20H单元(dnyun),其值为00H05H之间,要求编查表程序,查出变量的平方值, 并放入片内RAM的21H单元(dnyun)。分析 :在程序存储器安排一张平方表,首地址为TAB,以DPTR指向表首址,A存放变量值,利用查表指令

6、(zhlng)MOVC A,A+DPTR,即可求得。表中数据用BCD码存放合乎人们的习惯. ORG 0000H MOV DPTR, #TAB MOV A, 20H MOVC A, A+DPTR ;查表 MOV 21H,A SJMP $TAB2: DB 00H,01H,04H,09H,16H,25H ENDDPTRA第14页/共47页第十五页,共47页。条件满足?N影响条件Y处理段条件满足?N影响条件Y处理1处理2第15页/共47页第十六页,共47页。G3 + (G-5)2; 当G5M=G3 ;当G5 3G因重复使用,先暂存在(cnzi)R2。流程见左, 程序如下:第16页/共47页第十七页,共

7、47页。第17页/共47页第十八页,共47页。 有一类分支程序,它根据不同的输入条件或不同的运算(yn sun)结果,转向不同的处理程序,称之为散转程序。第18页/共47页第十九页,共47页。 多分支散转程序的设计 这类程序通常利用(lyng)JMP A+DPTR间接转移指令实现转移。有如下两种设计方法: 1. 查转移地址表: 将转移地址列成表格,将表格的内容作转移的目标地址。 2. 查转移指令表: 将转移到不同程序的转移指令列成表格,判断条件后查表,转到表中指令执行,下面用两个例子说明。第19页/共47页第二十页,共47页。第20页/共47页第二十一页,共47页。TABTAB+2DPH DP

8、L例如(lr) R3=1的操作0220第21页/共47页第二十二页,共47页。例2:通过查转移指令表实现多分支程序转移举例。 由40H单元中动态运行结果(ji gu)值来选择分支程序 (40H)0,转处理程序0 (40H)1,转处理程序1 . (40H)n,转处理程序n 其程序段如下:START:MOV DPTR,ADDR16;多分支转移指令表首址送 ;DPTR MOV A,40H ;40H单元内容送A CLR C ;清CY RLC A ;A内容左移一位 JNC TABLE ;若CY0转TABEL INC DPH ;若CYl,DPH内容十1 TABEL: JMP A十DPTR ;多分支转移AD

9、DR16:AJMP LOOP0;转分支程序0 AJMP LOOP1;转分支程序1 AJMP LOOPn;转分支程序n第22页/共47页第二十三页,共47页。-循环(xnhun)结构第23页/共47页第二十四页,共47页。-循环(xnhun)结构先执行(zhxng)后判断 先判断后执行 第24页/共47页第二十五页,共47页。第25页/共47页第二十六页,共47页。111122内循环DL1到指令(zhlng)DJNZ R1,DL1的计算: (1+1+2)2SMT=1000S MT=125=7DH将7DH代入上面程序(chngx)的MT,计算总的延时时间: 1+1+(1+1+2)125+2*102

10、S =10062S=10.062mS若需要延时更长时间,可以采用多重循环。机器周期数内外第26页/共47页第二十七页,共47页。例:设单片机晶振频率6M,编写一段程序,大约延时1秒钟。分析:由于DJNZ指令最多的循环(xnhun)次数是256次,而1S256256 约等于15S,晶振频率6MHZ,则1个机器周期为2S,我们把内循环(xnhun)定为8个机器周期16S。则16S250250=1S。Delay: MOV R7,#0FAHLOOP: MOV R6,#0FAHLOOP1:NOPNOPNOPNOPNOPNOPDJNZ R6,LOOP1DJNZ R7,LOOP 实际执行时间为: (6+2)

11、250+2+1250+1=500751个机器周期,需1.001502秒。 第27页/共47页第二十八页,共47页。外循环中循环内循环外循环内循环外循环内循环内循环(a)嵌套正确(b)嵌套正确(c)交叉不正确多重循环(xnhun)示意图第28页/共47页第二十九页,共47页。 345 H 0A H 32 H 28 H 2B H 1E H 20B H第29页/共47页第三十页,共47页。 ORG 0000H CLR C ;清进位位C MOV R1,#20H ;R1指示地址 MOV R2,#00H ;存积的高八位寄存器R2清0SH10:MOV A, R1 ;取一字节送A MOV B,#0AH ;10

12、送B PUSH PSW MUL AB ;字节乘10 POP PSW ADDC A,R2 ;上次积高八位加本次积低八位 MOV R1,A ;送原存储单元 MOV R2,B ;积的高八位送R2 INC R1 ;指向下一字节 DJNZ R7,SH10 ;未乘完去SH10,否则(fuz)向下执行 MOV R1,B ;存最高字节积的高位 SJMP $第30页/共47页第三十一页,共47页。不交换(jiohun)(0)12 23 65 09 1912 23 65 09 19交换(1)12 23 09 65 19不交换(jiohun)(0)交换(1)12 23 09 19 65最大交换(1)不交换(0)12

13、 23 09 19 65 12 09 23 19 65 交换(1)12 09 19 23 65不交换(0)交换(1)12 09 19 23 65最大12 09 19 23 6509 12 19 23 6509 12 19 23 6509 12 19 23 6509 12 19 23 65第31页/共47页第三十二页,共47页。结束清0 0 位作为标记取出下一单元数置位0 0 位两数互换预置循环次数开始已比较1 0 0 次?从3 0 H 单元取数取出大数该单元数大于下一单元?NNNYYY0 0 位为0 ?第32页/共47页第三十三页,共47页。3.6 位操作程序设计(chn x sh j) MC

14、S-51单片机有着优异的位逻辑功能(gngnng),可以方便的实现各种复杂的逻辑运算.这种用软件替代硬件的方法,可以大大简化甚至完全不用硬件,但比硬件要多花运算时间。第33页/共47页第三十四页,共47页。 其中P1.1和P2.2分别是端口线上的信息,TF0和IE1分别是定时器定时溢出标志(biozh)和外部中请求标志(biozh), 25H和26H分别是两个位地址, 运算结果由端口线P1.3输出.程序(chngx)如下:START: MOV C, P2.2 ORL C,TF0 ANL C,P1.1 MOV F0,C MOV C,IE1 ORL C,/25H ANL C,F0 ANL C,/2

15、6H MOV P1.3,C SJMP $第34页/共47页第三十五页,共47页。 X4 BIT ACC.4 X5 BIT ACC.5 X6 BIT ACC.6 X7 BIT ACC.7第35页/共47页第三十六页,共47页。第36页/共47页第三十七页,共47页。-子程序第37页/共47页第三十八页,共47页。第38页/共47页第三十九页,共47页。第39页/共47页第四十页,共47页。-子程序第40页/共47页第四十一页,共47页。-参数传递第41页/共47页第四十二页,共47页。-参数传递第42页/共47页第四十三页,共47页。例3-16 用程序实现c=a2+b2,设a, b均小于10。a存放(cnfng)在31H单元,b存放(cnfng)在32H单元,把c存入34H和33H单元。(和要求为BCD码)。 解:因该算式两次用到平方值,所以在程序中采用把求平方编为子程序的方法。求平方采用查表法,主程序和子程序编写如下:第43页/共47页第四

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论