汇编语言程序设计知识 .ppt
《汇编语言程序设计知识 .ppt》由会员分享,可在线阅读,更多相关《汇编语言程序设计知识 .ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计知汇编语言程序设计知识识 现在学习的是第1页,共54页4.1.1汇编语言的构成汇编语言的构成n用用MCS-51汇编语言编写的源程序行(一条语句)包汇编语言编写的源程序行(一条语句)包括四个部分,也叫四个字段:括四个部分,也叫四个字段:标号标号:操作码操作码操作数操作数;注释注释n 每个字段之间要用分隔符分隔,而每个字段内部不能使用分隔符。每个字段之间要用分隔符分隔,而每个字段内部不能使用分隔符。可以用作分隔符的符号:空格可以用作分隔符的符号:空格“”、冒号、冒号“:”、逗号、逗号“,”、分号、分号“;”等。等。例:例:LOOP:MOV A,#00H;立即数;立即数00HA现在学
2、习的是第2页,共54页标号标号n标号是用户定义的符号地址。标号是用户定义的符号地址。n一条指令的标号是该条指令的符号名字,标号的值是汇编这条一条指令的标号是该条指令的符号名字,标号的值是汇编这条指令时指令的地址。指令时指令的地址。n标号由以英文字母开始的标号由以英文字母开始的18个字母或数字组成,以冒号个字母或数字组成,以冒号“:”结尾。结尾。n标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存放该指令目标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存放该指令目标码第一字节的存储单元的地址赋给该标号,所以,标号又叫指令标号。标码第一字节的存储单元的地址赋给该标号,所以,标号又叫指令标号。
3、现在学习的是第3页,共54页操作码操作码n操作码是必不可少的。操作码是必不可少的。n它用一组字母符号表示指令的操作码。在它用一组字母符号表示指令的操作码。在MCS-51中,中,由由MCS-51的指令助记符组成。的指令助记符组成。现在学习的是第4页,共54页操作数操作数n汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没有。汇编语言指令可能要求或不要求操作数,所以这一字段可能有也可能没有。n若有两个操作数,操作数之间用逗号若有两个操作数,操作数之间用逗号“,”分开。分开。n操作数包括的内容有:操作数包括的内容有:n(1)工作寄存器:由)工作寄存器:由PSW.3和和PSW.4规定的当前
4、工作寄存器区中的规定的当前工作寄存器区中的R0R7。n(2)特殊功能寄存器:)特殊功能寄存器:21个个SFR的名字。的名字。n(3)标号名:赋值标号)标号名:赋值标号由汇编指令由汇编指令EQU等赋值的标号;指令标号等赋值的标号;指令标号指令标号指令标号指示的指令的第一字节地址是该标号的值。指示的指令的第一字节地址是该标号的值。n(4)常数:可用二进制()常数:可用二进制(B)、十进制、十六进制()、十进制、十六进制(H),若常数以字符开头,前面),若常数以字符开头,前面加加0。n(5)$:用来表示程序计数器的当前值。:用来表示程序计数器的当前值。n(6)表达式:汇编时,计算出表达式的值填入目标
5、码。)表达式:汇编时,计算出表达式的值填入目标码。现在学习的是第5页,共54页注释注释n注释部分不是汇编语言的功能部分,只是用语增加注释部分不是汇编语言的功能部分,只是用语增加程序的可读性。程序的可读性。n良好的注释是汇编语言程序编写中的重要组成部分。良好的注释是汇编语言程序编写中的重要组成部分。现在学习的是第6页,共54页伪指令n伪指令不是真正的指令,无对应的机器码,在汇编伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序,只是用来对汇编过程进行某种时不产生目标程序,只是用来对汇编过程进行某种控制。控制。现在学习的是第7页,共54页ORG 汇编起始命令汇编起始命令n格式:格式:OR
6、G 16位地址位地址n功能:规定该伪指令后面程序的汇编地址,即汇编后生成目标程功能:规定该伪指令后面程序的汇编地址,即汇编后生成目标程序存放的起始地址。例如:序存放的起始地址。例如:ORG 2000HSTART:MOV A,#64H n规定了规定了START的地址是的地址是2000H,又规定了汇编后的第一条指令码从,又规定了汇编后的第一条指令码从2000H开始存放。开始存放。现在学习的是第8页,共54页EQU 赋值命令赋值命令n格式:字符名称格式:字符名称 EQU 项(数或汇编符号)项(数或汇编符号)n功能:把功能:把“项项”赋给赋给“字符名称字符名称”。n注意:字符名称不等于标号(其后没有冒
7、号);其注意:字符名称不等于标号(其后没有冒号);其中的项,可以是数,也可以是汇编符号。中的项,可以是数,也可以是汇编符号。EQU赋值赋值过的符号名可以用作数据、代码地址、位地址或一过的符号名可以用作数据、代码地址、位地址或一个立即数。可以是个立即数。可以是8位的,也可以是位的,也可以是16位的。位的。现在学习的是第9页,共54页EQU 赋值命令赋值命令例例1:AA EQU R1 MOV A,AA;AA代表工作寄存器代表工作寄存器R1例例2:A10 EQU 10DELY EQU 07EBH MOV A,A10;A10作为片内的一个直接地址作为片内的一个直接地址 LCALL DELY;DELY作
8、为一个作为一个16位子程序的入口地址位子程序的入口地址现在学习的是第10页,共54页DB 定义字节命令定义字节命令n格式:格式:DB(项或项表)(项或项表)n功能:通知汇编程序从当前功能:通知汇编程序从当前ROM地址开始,保留一地址开始,保留一个字或字节串的存储单元,并存入个字或字节串的存储单元,并存入DB后的数据。后的数据。n注意:项或项表可以是一个字节,用逗号隔开的字注意:项或项表可以是一个字节,用逗号隔开的字节串或括在单引号中的节串或括在单引号中的ASCII字符串。字符串。n例如:例如:现在学习的是第11页,共54页DB 定义字节命令定义字节命令 ORG 2000H DB 0A3HLIS
9、T:DB 26H,03H STR:DB ABC 经汇编后(经汇编后(2000H)=A3H,(2001H)=26H,(2002H)=03H,(2003H)=41H,(2004H)=42H,(2005H)=43H,(,(41H,42H,43H分别为分别为A,B,C的的ASCII码)码)现在学习的是第12页,共54页DW 定义字命令定义字命令n格式:格式:DW 16位数据项或项表位数据项或项表n功能:把功能:把DW后的后的16位数据项或项表从当前地址连续位数据项或项表从当前地址连续存放。每项数值为存放。每项数值为16位二进制数,高位二进制数,高8位先放,低位先放,低8位后存放。位后存放。DW用于定义
10、一个地址表。用于定义一个地址表。n例如:例如:现在学习的是第13页,共54页DW 定义字命令定义字命令 ORG 1500HTABLE:DW 7234H,8AH,10H 经汇编后(经汇编后(1500H)=72H,(1501H)=34H,(1502H)=00H,(1503H)=8AH,(1504H)=00H,(1505H)=10H,现在学习的是第14页,共54页DS 定义存储空间命令定义存储空间命令n格式:格式:DS 表达式表达式n功能:在汇编时,从指定地址开始保留功能:在汇编时,从指定地址开始保留DS之后表达式的值所规定的之后表达式的值所规定的存储单元以备后用。存储单元以备后用。n例如:例如:O
11、RG 1000HDS 08HDB 30H,8AH汇编后,从汇编后,从1000H保留保留8个单元,然后从个单元,然后从1008H按按DB命令给内存赋值,命令给内存赋值,即(即(1008H)=30H (1009H)=8AH现在学习的是第15页,共54页BIT 位地址符号命令位地址符号命令n格式:字符名格式:字符名 BIT 位地址位地址n功能:把功能:把BIT后的位地址值赋给字符名。其中字符名不是标号,其后后的位地址值赋给字符名。其中字符名不是标号,其后没有冒号,但字符名是必须的。没有冒号,但字符名是必须的。n例如:例如:nA1 BIT P1.0nA2 BIT 02Hn汇编后,汇编后,P1口第口第0
12、位的位地址位的位地址90H就赋给了就赋给了A1,而,而A2的值则为的值则为02H。现在学习的是第16页,共54页DATA 数据地址赋值命令数据地址赋值命令n格式:字符名称格式:字符名称 DATA 表达式表达式n功能:与功能:与EQU类似,但有以下差别:类似,但有以下差别:n1、EQU定义的字符名必须先定义后使用,而定义的字符名必须先定义后使用,而DATA定义的字符名定义的字符名可以后定义先使用。可以后定义先使用。n2、用、用EQU伪指令可以把一个汇编符号赋给一个名字,而伪指令可以把一个汇编符号赋给一个名字,而DATA只只能把数据赋给字符名。能把数据赋给字符名。n3、DATA语句可以把一个表达式
13、的值赋给字符名称,其中的表达式应语句可以把一个表达式的值赋给字符名称,其中的表达式应是可求值的。是可求值的。现在学习的是第17页,共54页END 汇编结束指令汇编结束指令n格式:格式:ENDn功能:通知汇编程序结束汇编。在功能:通知汇编程序结束汇编。在END之后所有的之后所有的汇编指令均不予以处理。汇编指令均不予以处理。现在学习的是第18页,共54页4.2 汇编语言源程序的编辑和汇编现在学习的是第19页,共54页4.2.1 源程序编辑n在微型计算机上,借助编辑软件,编写或修改汇在微型计算机上,借助编辑软件,编写或修改汇编语言源程序。如行编辑或屏幕编辑软件。编语言源程序。如行编辑或屏幕编辑软件。
14、现在学习的是第20页,共54页4.2.2 源程序的汇编n汇编:将汇编语言源程序转换为机器码表示的目标汇编:将汇编语言源程序转换为机器码表示的目标程序的过程。对单片机有:程序的过程。对单片机有:一、手工汇编一、手工汇编 二、机器汇编二、机器汇编 三、反汇编三、反汇编现在学习的是第21页,共54页一、手工汇编一、手工汇编n通过手工方式查指令编码表,逐个把助记符指令通过手工方式查指令编码表,逐个把助记符指令“翻译翻译”成机器码,然后把得到的机器码程序键入单成机器码,然后把得到的机器码程序键入单片机,进行调试和运行。片机,进行调试和运行。n手工汇编的缺点:手工汇编的缺点:1、偏移量的计算容易出错、偏移
15、量的计算容易出错 2、程序的修改会引起后面指令地址的变化,转移、程序的修改会引起后面指令地址的变化,转移指令的偏移量也要重新计算。指令的偏移量也要重新计算。现在学习的是第22页,共54页二、机器汇编二、机器汇编n机器汇编是在计算机上使用交叉汇编程序进行源程机器汇编是在计算机上使用交叉汇编程序进行源程序的汇编。汇编工作由机器自动完成,最后得到以序的汇编。汇编工作由机器自动完成,最后得到以机器码表示的目标程序。机器码表示的目标程序。现在学习的是第23页,共54页三、反汇编三、反汇编n将二进制机器语言程序翻译成汇编语言程序的过程将二进制机器语言程序翻译成汇编语言程序的过程称反汇编。称反汇编。n汇编和
16、反汇编的过程如图汇编和反汇编的过程如图4-3所示。所示。现在学习的是第24页,共54页源程序(汇编语言)目标码(机器语言)汇编(汇编程序)反汇编(汇编程序)图4-3 汇编和反汇编过程现在学习的是第25页,共54页4.3 编程的步骤、方法和技巧现在学习的是第26页,共54页4.3.1 编程的步骤n一、分析问题一、分析问题n二、确定算法二、确定算法n三、画程序流程图三、画程序流程图n四、编写程序四、编写程序现在学习的是第27页,共54页一、分析问题一、分析问题n对需要解决的问题进行分析,以求对问题由正确的对需要解决的问题进行分析,以求对问题由正确的理解。理解。n解决问题的任务是什么?解决问题的任务
17、是什么?n工作过程?工作过程?n现有的条件,已知数据,对运算的精度和速度方面现有的条件,已知数据,对运算的精度和速度方面的要求?的要求?n设计的硬件结构是否方便编程?设计的硬件结构是否方便编程?现在学习的是第28页,共54页二、确定算法二、确定算法n算法是如何将实际问题转化成程序模块来处理。算法是如何将实际问题转化成程序模块来处理。n在编程以前,先要对几种不同的算法进行分析、比在编程以前,先要对几种不同的算法进行分析、比较,找出最适宜的算法较,找出最适宜的算法现在学习的是第29页,共54页三、画程序流程图三、画程序流程图n程序流程图是使用各种图形、符号、有向线段等来说明程序设计过程的程序流程图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言程序设计知识 汇编语言 程序设计 知识
限制150内