情境三_认识汇编语言

上传人:ji****n 文档编号:54805510 上传时间:2018-09-19 格式:PPT 页数:36 大小:640.50KB
返回 下载 相关 举报
情境三_认识汇编语言_第1页
第1页 / 共36页
情境三_认识汇编语言_第2页
第2页 / 共36页
情境三_认识汇编语言_第3页
第3页 / 共36页
情境三_认识汇编语言_第4页
第4页 / 共36页
情境三_认识汇编语言_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《情境三_认识汇编语言》由会员分享,可在线阅读,更多相关《情境三_认识汇编语言(36页珍藏版)》请在金锄头文库上搜索。

1、单片机教学情景3 认识汇编语言 考核要点:了解C8051指令系统要点,掌握伪指令的用法。 能编写简单汇编程序。,4.1 汇编语言语句种类及其格式,第四章 汇编语言程序格式,不同的汇编程序有不同的汇编语言编程规定。目前支持Intel8086/8088系列微机,常用的汇编程序有ASM、MASM、TASM、OPTASM等 。,本章主要介绍汇编语言程序设计中的一些基本书写格式与语法规则。,每一条指令语句在汇编时都要产生一个可供CPU执行的机器目标代码,它又叫可执行语句。,一、指令语句,指令语句的一般格式为:标号:指令助记符(空格)操作码,操作数;注释,一条指令语句最多可以包含4个字段,汇编语言的语句可

2、以分为指令语句和伪指令语句,标号是可选字段,它后面必须有“:”。标号是一条指令的符号地址,代表了该指令的第一个字节存放地址。标号一般放在一个程序段或子程序的入口处,控制程序的执行转到该程序位置。在转移指令或子程序调用指令中,可直接引用这个标号。在汇编语言里,地址是一个很重要的东西,你要读写数据,首先你得找到你要的数据的地址,同样程序也是被放在内存里的,如果没有标号来说明,CPU怎么知道它放在内存的哪个位置。在程序执行的时候,你写的那些标号会被翻译成诸如3100:1000h这样的地址。这就是标号的作用。,1.标号字段,例 ADDR1:MOV A,#10H,三、标识符,指令语句中的标号和伪指令语句

3、中符号名统称为标识符。标识符是由若干个字符构成的。,标识符构成规则:,1.字符的个数为131个;,2.第一个字符必须是字母、问号、或下划线“_”这4种字符之一;,保留字主要有CPU中各寄存器名(如AX、CS等),指令助记符(如MOV、ADD),伪指令符(如SEGMENT、DB)、表达式中的运算符(如GE、EQ)以及属性操作符(如PTR、OFFSET等),3.从第二个字符开始,可以是字母、数字、 、 “_”或问号“?”;,4.不能使用属于系统专用的保留字。,该字段是一条指令的必选项,它表示这条语句要求CPU完成什么具体操作,如MOV、ADD、SUBB等。,2.指令助记符字段,一条指令可以有一个操

4、作数、两个操作数或者无操作数。,3.操作数段,如ADD、MOV指令需要两个操作数,INC、NOT指令只需一个操作数,而RET指令不需要操作数。,4.注释,例:LABEL1:ADD AX,BX;功能为AX=(AX)+(BX);后面的程序段将完成一次对存储器的访问,注释字段为可选项,该字段以分号“;”开始。,注释字段可以是一条指令的后面部分,也可以是整个语句行。,它的作用是为阅读程序的人加上一些说明性内容,注释字段不会产生机器目标代码,它不会影响程序和指令的功能。,伪指令本身并不产生对应的机器目标代码。它仅仅是告诉汇编程序对其后面的指令语句和伪指令语句的操作数应该如何处理。,二、伪指令语句,伪指令

5、语句又叫命令语句。,一条伪指令语句可以包含四个字段。如下所示:,1.符号名字段,该字段为可选项。根据伪指令的不同,符号名可以是常量名、变量名、过程名、结构名和记录名等等。,注意:符号名后面没有冒号“:”,这是与指令语句的重要区别。,一条伪指令语句的符号名可以作其它伪指令语句或指令语句的操作数,这时它表示一个常 量或存储器地址,该字段是伪指令语句的必选项,它规定了汇编程序所要完成的具体操作。本章后面的章节将对各种伪指令作详细介绍。,2.伪指令符字段,该字段是否需要,以及需要几个是由伪指令符字段来决定。,3.操作数字段,操作数可以是一个常数(二进制、十进制、十六进制等)、字符串、常量名、变量名、标

6、号和一些专用符号(如BYTE、FAR、PARA等)。,注释字段为可选项,该字段必须以分号开始。其作用与指令语句的注释字段相同。,4.注释字段,三、标识符,指令语句中的标号和伪指令语句中符号名统称为标识符。标识符是由若干个字符构成的。,标识符构成规则:,1.字符的个数为131个;,2.第一个字符必须是字母、问号、或下划线“_”这4种字符之一;,保留字主要有CPU中各寄存器名(如AX、CS等),指令助记符(如MOV、ADD),伪指令符(如SEGMENT、DB)、表达式中的运算符(如GE、EQ)以及属性操作符(如PTR、OFFSET等),3.从第二个字符开始,可以是字母、数字、 、 “_”或问号“?

7、”;,4.不能使用属于系统专用的保留字。,在说明数据时不仅要指定其数值,还需说明它的属性,如是字节数据还是字数据。,4.2 汇编语言数据,数据是指令和伪指令语句中操作数的基本组成部分。一个数据由数值和属性两部分构成。,在汇编语言中常用的数据形式有:常数、变量和标号。,常数在汇编期间其值已完全确定,并且在程序运行过程中,其值不会发生变化。,一、常数,常数有以下几种形式:,1.二进制数:以字母B结尾,如01001001B,2.八进制数:以字母O或Q结尾,如631Q 254O,3. 十进制数:以字母D结尾,或者没有结尾字母。如2007D、2007。,4. 十六进制数:以字母H结尾,如3FEH,如果常

8、数的第一个数字为字母,为了与标识符加以区别,必须在其前面冠以数字“0”。,整数部分 小数部分E 指数部分,汇编程序在汇编源程序时,可以把实数转换为4字节、8字节或10字节的二进制数形式存放。,例 2.134 E +10,5.实数。一般格式为:,6字符串常数:用引号(单引号或双引号)括起来的一个或多个字符,这些字符以它的ASCII码值存储在内存。,例如B在内存中为42H,ABC为41H 42H 43H。在内存中的存储如图所示。,(3)在数据定义伪指令中使用,常数在程序中可以用在以下几种情况:,(1)作指令语句的源操作数,(2)在指令语句的直接寻址方式、变址(基址)寻址方式或基址变址寻址方式中作位

9、移量。,MOV AX, 0B2F0H ADD AH, 64H,MOV BX,32H SI MOV 0ABH BX,CX ADC DX,1234H BPDI,DB 10H DW 3210H,变量用来表示存放数据的存储单元,这些数据在程序运行期间可以被改变 。,二、变量,定义变量就是给变量在内存中分配一定的存储单元。也就是给这个存储单元赋予一个符号名,即变量名,同时还要将这些存储单元预置初值。,1.变量的定义与预置,定义变量使用数据定义伪指令 DB、DW、DD、DQ和DT等。,程序中以变量名的形式来访问变量,因此,可以认为变量名就是存放数据的存储单元地址。,标号写在一条指令的前面,它就是该指令在内

10、存的存放地址的符号表示,也就是指令地址的别名。,三、标号,例如: MOV CX, 100 LAB: MOV AX, BX LOOP LAB JNE NEXT ;不为零转移 NEXT: ,标号主要用在程序中需要改变程序的执行顺序时,用来标记转移的目的地,即作转移指令的操作数。,汇编语言程序格式,汇编语言程序实例 标号: 指令(操作码) 操作数(目的操作数,源操作数) ;注释ORG 0000H MAIN: mov 0FFH, #0DEhmov 0FFH, #0ADh; Enable the Port I/O Crossbarmov 0E3H, #40h; Set P1.6 (LED) as pus

11、h-pull output. All others default to open-drain. orl 0A6H,#01000000b mov 0A6H,#0ffH; Initialize LED to OFFclr 0A6Hmov 0A0H,#00H; Simple delay loop. Blink: mov R7, #10h Loop0: mov R6, #00h Loop1: mov R5, #00hdjnz R5, $djnz R6, Loop1djnz R7, Loop0cpl 0A6H ; Toggle LED.jmp BlinkEND,汇编语言程序由若干行指令序列语句组成 每

12、一行指令序列语句由标号、指令、注释三部分组成。具体含义如下: 一、标号由一至六个英文开头的字符组成冒号结束。 二、指令由操作码和操作数两部分组成。 1、操作码部分由指令助记符组成,用于规定指令的操作作用,用指令的英文名称或英文名称缩写来表示。用助记符表示的指令称为汇编语言。 2、操作数部分是指令的操作对象,它既可以是一个具体数据,也可以是取得数据的地址或符号。操作数可以是一个也可以是两个,若是两个则用逗号隔开。操作数也可以隐含在操作码中,不表示出来。 3、操作码和操作数部分用空隔隔开。 三、注释部份用分号开始,用于对指令或程序段的功能进行说明,为可选部分。程序不执行。 机器语言:用二进制代码表

13、示的指令,因为能被计算机懂得并直接执行,所以称为机器语言。 汇编:是将汇编语言源程序到机器语言目标程序的“翻译”过程。,C8051F015单片机指令系统(111条),C8051F015单片机指令系统指所有指令的集合。 一、算术操作类指令(24条) 助记符 功能说明 字节数 周期数 ADD A,Rn 寄存器加到累加器 1 1 ADD A,direct 直接寻址字节加到累加器 2 2 ADD A,Ri 间址RAM内容加到累加器 1 2 ADD A,#data 立即数加到累加器 2 2 ADDC A,Rn 寄存器加到累加器(带进位) 1 1 ADDC A,direct 直接寻址字节加到累加器(带进位

14、) 2 2 ADDC A,Ri 间址RAM加到累加器(带进位) 1 2 ADDC A,#data 立即数加到累加器(带进位) 2 2 SUBB A,Rn 累加器减去寄存器(带借位) 1 1 SUBB A,direct 累加器减去间接寻址RAM(带借位) 2 2 SUBB A,Ri 累加器减去间址RAM(带借位) 1 2 SUBB A,#data 累加器减去立即数(带借位) 2 2,助记符 功能说明 字节数 周期数 INC A 累加器加1 1 1 INC Rn 寄存器加1 1 1 INC direct 直接寻址字节加1 2 2 INC Ri 间址RAM加1 1 2 DEC A 累加器减1 1 1 DEC Rn 寄存器减1 1 1 DEC direct 直接寻址字节减1 2 2 DEC Ri 间址RAM减1 1 2 INC DPTR 数据地址加1 1 1 MUL AB 累加器与寄存器B相乘 1 4 DIV AB 累加器除以寄存器B 1 8 DA A 累加器十进制调整 1 1,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号