指令系统及程序设计(部分)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《指令系统及程序设计(部分)课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统 程序设计 部分 课件
- 资源描述:
-
1、1 3.4 汇编语言程序设计基础汇编语言程序设计基础 程序编辑程序编辑:源程序的编写要依据汇编语言的基本规则,可用文本:源程序的编写要依据汇编语言的基本规则,可用文本编辑软件进行编辑。编辑软件进行编辑。编辑好的源程序应以编辑好的源程序应以“ . ASM”扩展名存盘扩展名存盘(了解)。(了解)。 程序汇编程序汇编:将汇编语言源程序转换为单片机能执行的机器码形式:将汇编语言源程序转换为单片机能执行的机器码形式的目标程序的过程叫汇编。常用的方法有两种:的目标程序的过程叫汇编。常用的方法有两种:手工汇编和机器手工汇编和机器汇编(了解)汇编(了解) 3.4.1 汇编语言程序的组成汇编语言程序的组成 汇编
2、语言语句可分为:指令性语句(即汇编指令)和指示性语句(即伪指令)。 指令性语句:指令性语句:指令性语句(可简称指令)是进行汇编语言程序设计的可执行语句,每条指令都产生相应的机器语言的目标代码。 指示性语句:指示性语句:指示性语句(伪指令)又称汇编控制指令。它是控制汇编(翻译)过程的一些命令,程序员通过伪指令要求汇编程序在进行汇编时的一些操作。因此,伪指令不产生机器语言的目标代码,是汇编语言程序中的不可执行语句。伪指令主要用于指定源程序存放的起始地址、定义符号、指定暂存数据的存储区以及将数据存入存储器、结束汇编等。 23.4.2 3.4.2 伪指令伪指令起始地址设定伪指令起始地址设定伪指令 OR
3、G格式:格式:ORG 表达式表达式 功能功能:向汇编程序说明下面紧接的程序段或数据段存放:向汇编程序说明下面紧接的程序段或数据段存放的起始地址。表达式通常为的起始地址。表达式通常为16进制地址,也可以是已定进制地址,也可以是已定义的标号地址。义的标号地址。 ORG 8000HSTART:MOV A,#30H 此时规定该段程序的机器码从地址此时规定该段程序的机器码从地址8000H单元单元开始存放。开始存放。3 注意:在每一个汇编语言源程序的开始,注意:在每一个汇编语言源程序的开始,都要设置一都要设置一条条ORG伪指令来指定该程序在存储器中存放的起始位置。伪指令来指定该程序在存储器中存放的起始位置
4、。若省略若省略ORG伪指令,则该程序段从伪指令,则该程序段从0000H单元开始存放。单元开始存放。在一个源程序中,在一个源程序中,可以多次使用可以多次使用ORG伪指令规定不同程伪指令规定不同程序段或数据段存放的起始地址,但序段或数据段存放的起始地址,但要求地址值由小到大要求地址值由小到大依序排列依序排列,不允许空间重叠。,不允许空间重叠。END 汇编结束伪指令汇编结束伪指令 格式:格式:END 该指令的功能是结束汇编。该指令的功能是结束汇编。 汇编程序遇到汇编程序遇到END伪指令后即结束汇编。处于伪指令后即结束汇编。处于END之后的程序,汇编程序将不处理。之后的程序,汇编程序将不处理。4“标号
5、标号”(插入的内容)(插入的内容) 标号:标号: 操作码操作码 操作数操作数 ;注释;注释 如:如:LOOPLOOP:MOV AMOV A,# 7FH # 7FH ;A7FHA7FH 标号标号是语句地址的标志符号是语句地址的标志符号,有关标号的规定有关标号的规定为:为:由由18个个ASCII字符组成。字符组成。第一个字符必须是字母第一个字符必须是字母,其余字,其余字符可以是字母、数字或其他特定字符;符可以是字母、数字或其他特定字符; 不能使用已经定义了的符号作为标号。如指令助记符、寄不能使用已经定义了的符号作为标号。如指令助记符、寄存器符号名称等;存器符号名称等;后边必须跟冒号。后边必须跟冒号
6、。5字节数据定义伪指令字节数据定义伪指令 DB 格式:格式: 标号:标号: DB 字节数据表字节数据表 功能:功能:从标号指定的地址开始,在从标号指定的地址开始,在ROM中定义字中定义字节数据。该伪指令将字节数据表中的数据根据从左节数据。该伪指令将字节数据表中的数据根据从左到右的顺序依次存放在指定的存储单元中。一个数到右的顺序依次存放在指定的存储单元中。一个数据占一个存储单元。例如:据占一个存储单元。例如:DB “how are you?”把字符串中的字符以把字符串中的字符以ASCII码的码的形式存放在连续的形式存放在连续的ROM单元中单元中。6字数据定义伪指令字数据定义伪指令 DW格式:格式
7、:标号:标号: DW 字数据表字数据表功能:功能:是从标号指定的地址单元开始,在程序存储是从标号指定的地址单元开始,在程序存储器中定义字数据。该伪指令将字或字表中的数据根器中定义字数据。该伪指令将字或字表中的数据根据从左到右的顺序依次存放在指定的存储单元中。据从左到右的顺序依次存放在指定的存储单元中。应特别注意:应特别注意:16位的二进制数,高位的二进制数,高8位存放在低地址位存放在低地址单元,低单元,低8位存放在高地址单元。例如:位存放在高地址单元。例如: ORG 1400HDATA:DW 324AH,3CH 汇编后,(汇编后,(1400H)=32H,(,(1401H)= 4AH,(1402
8、H)=00H,(,(1403H)=3CH。7空间定义伪指令空间定义伪指令 DS格式:格式: 标号:标号: DS 表达式表达式 功能:功能:从标号指定的地址单元开始,在程序存储器从标号指定的地址单元开始,在程序存储器中保留由表达式所指定的个数的存储单元作为备用中保留由表达式所指定的个数的存储单元作为备用的空间,并都填以零值。例如:的空间,并都填以零值。例如: ORG 3000HBUF:DS 50 汇编后,从地址汇编后,从地址3000H开始保留开始保留50个存储个存储单元作为备用单元单元作为备用单元。 8赋值伪指令赋值伪指令 EQU格式:符号名格式:符号名 EQU 表达式表达式 功能:功能:将表达
9、式的值或特定的某个汇编符号定义为一将表达式的值或特定的某个汇编符号定义为一个指定的符号名。例如:个指定的符号名。例如: LEN EQU 10 SUM EQU 21H BLOCK EQU 22H CLR A MOV R7,LEN MOV R0,BLOCK LOOP:ADD A,R0 INC R0 DJNZ R7,LOOP MOV SUM,A END 该程序的功能是,把该程序的功能是,把BLOCK单元开始存放的单元开始存放的10个无符号个无符号数进行求和,并将结果存入数进行求和,并将结果存入SUM单元中。单元中。9位地址符号定义伪指令位地址符号定义伪指令 BIT格式:符号名格式:符号名 BIT 位
10、地址表达式位地址表达式 功能功能:将位地址赋给指定的符号名。其中,位:将位地址赋给指定的符号名。其中,位地址表达式可以是绝对地址,也可以是符号地地址表达式可以是绝对地址,也可以是符号地址。址。例如:例如: ST BIT P1.0将将P1.0的位地址赋给符号名的位地址赋给符号名ST,在其后的编,在其后的编程中就可以用程中就可以用ST来代替来代替P1.0。10 3.4.3 程序设计步骤及技术程序设计步骤及技术 1. 程序设计步骤程序设计步骤 汇编语言程序设计一般经过以下几个步骤: (1) 分析问题,明确任务要求,对于复杂的问题,还要将要解决的问题抽象成数学模型。 (2) 确定算法,即根据实际问题和
11、指令系统的特点确定完成这一任务需经历的步骤。 (3) 根据所选择的算法,确定内存单元的分配;使用哪些存储器单元;使用哪些寄存器;程序运行中的中间数据及结果存放在哪些单元,以利于提高程序的效率和运行速度。 (4) 根据流程图,编写源程序。 (5) 上机对源程序进行汇编、调试。 112 2 程序设计技术(了解)程序设计技术(了解)(1)确定)确定程序的结构程序的结构,画流程图画流程图(2)采用模块化(子程序)程序设计方法;)采用模块化(子程序)程序设计方法;应用系统的程序由包含多个模块的主程序和各种子应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,程序组成。
12、各程序模块都要完成一个明确的任务,实现某个具体的功能,如:发送、接收、延时、打实现某个具体的功能,如:发送、接收、延时、打印和显示等。模块化有利于程序的设计和调试,有印和显示等。模块化有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。靠性,使程序的结构层次一目了然。(3)尽量采用循环结构;)尽量采用循环结构;(4)能用)能用8位表示的数据不要用位表示的数据不要用16位数据表示位数据表示(5)考虑)考虑资源的分配资源的分配。书上其他内容了解书上其他内容了解12绘制流程图常用的符号绘制流程图常用的符号有
13、:开始和结束符号、有:开始和结束符号、工作任务符号、判断分支符号、程序连接符工作任务符号、判断分支符号、程序连接符号、程序流向符号等号、程序流向符号等 开始或结束符号判断分支符号程序流向符号程序流向符号133.5 程序设计实例程序设计实例顺序程序(简单程序)顺序程序(简单程序) 顺序程序是指无分支、无循环结构的程序。其执行流程是顺序程序是指无分支、无循环结构的程序。其执行流程是依指令在存储器中的存放顺序进行的。依指令在存储器中的存放顺序进行的。例例 内部内部RAM的的2AH2EH单元中存储的数据如图所示。试单元中存储的数据如图所示。试编写程序实现图示的数据传送结果。编写程序实现图示的数据传送结
14、果。14方法一:方法一:MOV A,2EH ;2字节,字节,1个机器周期个机器周期MOV 2EH,2DH ;3字节,字节,2个机器周期个机器周期MOV 2DH,2CH ;3字节,字节,2个机器周期个机器周期MOV 2CH,2BH ;3字节,字节,2个机器周期个机器周期MOV 2BH,#00H ;3字节,字节,2个机器周期个机器周期15方法二:方法二:CLR A ;1字节,字节,1个机器周期个机器周期XCH A,2BH ;2字节,字节,1个机器周期个机器周期XCH A,2CH ;2字节,字节,1个机器周期个机器周期XCH A,2DH ;2字节,字节,1个机器周期个机器周期XCH A,2EH ;2
15、字节,字节,1个机器周期个机器周期 以上两种方法均可以实现所要求的传送任务。以上两种方法均可以实现所要求的传送任务。方法一使用方法一使用14个字节的指令代码,执行时间为个字节的指令代码,执行时间为9个机个机器周期;方法二仅用了器周期;方法二仅用了9个字节的代码,执行时间也个字节的代码,执行时间也减少到了减少到了5个机器周期。实际应用中应尽量采用指令个机器周期。实际应用中应尽量采用指令代码字节数少、执行时间短的高效率程序,即代码字节数少、执行时间短的高效率程序,即注意注意程序的优化程序的优化。16 由于由于80C51指令系统中只有单字节加法指令,因指令系统中只有单字节加法指令,因此对于多字节的相
16、加运算必须从低位字节开始分字此对于多字节的相加运算必须从低位字节开始分字节进行。除最低字节可以使用节进行。除最低字节可以使用ADD指令外,其他指令外,其他字节相加时要把低字节的进位考虑进去,这时就应字节相加时要把低字节的进位考虑进去,这时就应该使用该使用ADDC指令。指令。例例 双字节无符号数加法。双字节无符号数加法。 设被加数存放在内部设被加数存放在内部RAM的的51H、50H单元,加单元,加数存放在内部数存放在内部RAM的的61H、60H单元,相加的结果单元,相加的结果存放在内部存放在内部RAM的的51H、50H单元,进位存放在位单元,进位存放在位寻址区的寻址区的00H位中。位中。 17
17、程序段如下:程序段如下:MOV R0,50H ;被加数的低字节地址;被加数的低字节地址MOV R1,60H ;加数的低字节地址;加数的低字节地址MOV A,R0 ;取被加数低字节;取被加数低字节ADD A,R1 ;加上加数低字节;加上加数低字节MOV R0,A ;保存低字节相加结果;保存低字节相加结果INC R0 ;指向被加数高字节;指向被加数高字节INC R1 ;指向加数高字节;指向加数高字节MOV A,R0 ;取被加数高字节;取被加数高字节ADDC A,R1 ;加上加数高字节(带进位加);加上加数高字节(带进位加)MOV R0,A ;存高字节相加结果;存高字节相加结果MOV 00H,C ;
展开阅读全文