第4章汇编语言程序设计.ppt_第1页
第4章汇编语言程序设计.ppt_第2页
第4章汇编语言程序设计.ppt_第3页
第4章汇编语言程序设计.ppt_第4页
第4章汇编语言程序设计.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、目的:1.进一步熟悉指令系统 2.会编写简单的程序 3.上机训练内容:4.1 汇编语言程序设计概述 4.2 三种程序结构 4.3 程序设计举例,所谓程序设计,就是按照给定的任务要求,编写出完整的计算机程序。要完成同样的任务,使用的方法或程序并不是唯一的。 前面我们学过了汇编语言形式的指令系统,本章重点介绍汇编语言程序结构以及如何利用汇编语言指令进行程序设计的方法。,4.1 汇编语言程序设计概述,4.1.1概念: 1.机器语言:机器直接识别和执行的语言,但编写繁琐费时、理解和记忆较困难,易出错。 2.汇编语言:一种符号化的语言,指令用助记符表示。 3.高级语言:面向过程而独立于机器的通用语言。

2、4.汇编语言源程序的编辑和汇编 编辑软件输入源程序汇编(自动完成)结果,4.1.2 伪指令 伪指令并不是真正的指令,也不产生相应的机器码,它们只是在计算机将汇编语言转换为机器码时,指导汇编过程,告诉汇编程序如何汇编。仅在源程序中出现,汇编后消失。 *(1)汇编起始伪指令ORG 格式:ORG 16位地址 功能:规定跟在其后的源程序经汇编后的目标程序的起始地址。如: ORG 8000H START: MOV A ,#30H 该指令规定第一条指令从地址8000H单元开始存放,即标号START的值为8000H。,*(2)汇编结束伪指令END(整个源程序末尾处) 格式:END 功能:结束汇编。 例如:

3、ORG 2000H START: MOV A ,# 00H END (3)赋值伪指令EQU(便于修改程序) 格式:字符名称 EQU 赋值项 例如: TEST EQU R0 MOV A,TEST,*(4)定义字节指令DB 格式:标号: DB 8位二进制数表 功能:将DB右边的单字节数据依次存放到以左边符号为起始地址的连续单元中。例如: ORG 1000H TAB: DB 23H,73, “B” TABl: DB 110B 以上伪指令经汇编以后,将对从1000H开始的若干内存单元赋值: (1000H)=23H (1001H)=49H (1002H)=42H (1003H)=06H 其中42H是字符

4、B的ASCII码,其余的十进制数(73)和二进制数(110B)也都换算为十六进制数了。,*(5)定义字命令 DW 格式:标号: DW 16位二进制数表 功能:把指令右边的双字节数据依次存入指定的连续存储单元中。高位在前,低位在后:其数据的高字节放到低地址单元,低字节存放到高地址单元。 例如: ORG 1000H TAB: DW 1234H , 0ABH , 10 汇编后: (1000H)=12H (1001H ) = 34H (1002H ) = 00H ( 1003H ) = ABH (1004H ) =00H (1005H) =0AH,(6)定义存储区伪指令DS 功能:从指定地址开始预留一

5、定数量的内存单元,以备源程序执行过程中使用。预留单元的数量由表达式的只预定。例如 ORG 0200H DS 05H DB 30H,40H END 汇编后,从0200H单元开始留出5个字节的存储单元,然后从0205H单元开始存放30H和40H。,(7)位地址赋值指令BIT 格式 : 字符名称 BIT 位地址 功能 : 把BIT右边的位地址赋给它左边的字符名称。被定义的位地址在源程序中可用字符名称来表示。例如 ORG 0200H A1 BIT 01H A2 BIT 30H.2 MOV C, A1 ;Cy(01H) MOV A2,C ;30H.2Cy END,4.1.3 汇编语言程序设计步骤 使用汇

6、编语言设计一个程序大致上可分为以下几个步骤。 (1) 分析题意,明确要求。 (2) 确定算法。 (3) 画程序流程图,用图解来描述和说明解题步骤。 (4) 编写源程序 (5) 程序优化。 (6)上机调试、修改和最后确定源程序。,4.2.1 顺序程序设计,顺序结构程序是一种最简单、最基本的程序,按照程序编写的顺序依次执行。 【例4-1】两个多字节数加法 1.两个三字节无符号相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、54H和55H单元中;要求把相加之和存放在50H、51H和52H单元中进位存放在位寻址区的00H位中。,4.2.2 分支程序结构,图 分支程

7、序结构流程图,分支程序是通过转移指令实现的。分单分支、多分支程序结构。 单分支程序:使用条件转移指令实现,即根据条件对程序的执行进行判断,满足条件则进行程序转移,否则,程序顺序执行。常用的条件转移指令有:JZ、JNZ、CJNE、DJNZ。以位状态为条件的转移指令:JC、JNC、JBJNBJBC,4.2.2 分支程序结构,图 分支程序结构流程图,例4-2 假定在外部RAM中有ST1、ST2和ST3共3个连续单元,其中ST1和ST2单元中分别存放着两个8位无符号二进位制数,要求找出其中的大数并存入ST3单元中。,START:CLR C ;进位位清“0” MOVDPTR,#ST1;设置数据指针 MO

8、VX A,DPTR;取第一个数 MOVR2,A ;第一个数存R2 INC DPTR ;数据指针加1 MOVXA,DPTR ;取第二个数 SUBBA,R2 ;两数比较 JNCBIG1 ;第二个数大转BIG1 MOVA,R2 ;第一个数大整字节交换继续 BIG0 : INCDPTR MOVXDPTR,A ;存大数 RET BIG1: MOVX A,DPTR SJMPBIG0,【例4-3】某温度控制系统,采集的温度值(Ta)放在累加器A中。此外,在内部RAM54H单元存放控制温度下限制(T54),在55H单元存放控制温度上限制(T55)。若Ta T55,程序转向JW(降温处理程序);若TaT54,则

9、程序转向SW(升温处理程序);T55TaT54,则程序转向FH(返回主程序)。,【例4-3】 CJNE A,55H,LOOP1;Ta/=T55,转LOOP1 AJMP FH; Ta=T55,返回 LOOP1:JNC JW;(CY)=1,表明TaT55,转降温JW CJNE A,54H,LOOP2; Ta/=T54,转LOOP2 AJMP FH; Ta=T54,返回 LOOP2:JC SW; (CY)=1,表明TaT54,转升温SW FH:RET; T55TaT54,返回,4.2.3 循环程序设计,循环程序一般由4部分组成: (1)置循环初值。 (2)循环体。 (3)循环修改。 (4)循环控制。

10、,4.3 程序设计举例,1.两个多字节数加法(已学) 2.多个单字节数加、减法 3.定时程序 4.查表程序,2.多个单字节数加、减法 例4-9有9个单字节数,依次存放在外部RAM 21H开始的连续单元中,要求把计算结果存放在R1和R2中(假定相加的和为二字节数),其中R1为高位,R2为低位。 分析: 1.(21H)(22H)+.(29H)=R1 R2 2.指针:DPTR 或R0,用MOVX指令 3.循环次数:R3=9 4.循环控制: 使用 DJNZ 指令 5.算法:(R0)(R2),每加一次,判断一次CY,MOVR0,#21H;设置数据指针 MOVR3,#09H;字节个数,循环次数 MOVR1

11、,#00H;和的高位清“0” MOVR2,#00H;和的低位清“0” LOOP: MOVX A,R0;取一个加数 ADD A,R2;单字节数相加 MOVR2,A;和的低位送R2 JNCLOOP1 INCR1;有进位则和的高位加1 LOOP1: INCR0 ;指向下一单元 DJNZ R3,LOOP RET,3.定时程序(软件定时,典型的循环程序) (1)基本定时程序 YANSHI:MOVR5,#T1 ;1个机器周期 LOOP2:MOV R4,#T2 ;1个机器周期 LOOP1:DJNZR4,LOOP1 ;2个机器周期 DJNZR5,LOOP2 ;2个机器周期 RET ;2个机器周期 已知晶振频率

12、6MHZ ,可计算出机器周期2s 定时时间总机器周期个数2s (1(12T22)T1+2)*2s,(2)以一个基本的延时程序满足不同的定时要求 以一个基本的延时程序作为子程序,通过调用的方法实现所需要的不同定时。 例如要求的定时时间分别为5s、10s和20s,并设计一个1秒延时子程序DELAY 。 主程序: MOV R0,#05H;5s延时 LOOP1:LCALL DELAY DJNZ R0,LOOP1 ,4.查表程序 用于查表的指令有两条: MOVC A,APC; MOVC A,ADPTR; 当使用DPTR作为基址寄存器时查表比较简单,查表 的步骤分三步 1)基址(表格首地址)送DPTR数据指针; 2)变址值(在表中的位置是第几项)送累加器A; 3)执行查表指令MOVC A,ADPTR,进行读 数,查表结果送回累加器A。,例4-14假定有44键盘,键扫描后把被按键的键码放在累加器A中,键码与处理子程序入口地址的对应关系为: 键码入口地址 0 RK0 ;16位 1 RK1 ;16位 2 RK2 ;16位,MOV DPTR,#BS;子程序入口地址表首址 RLA;键码值乘以2 MOVR2,A;暂存A MOVCA,A+DPTR;取得入口地址低位 PUSHACC;进栈暂存 MOVA,R2 INCA MOVCA,A+DPTR;取得入口地址高位 MOVDPH,A POPDPL CLRA JM

温馨提示

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

评论

0/150

提交评论