汇编语言 -精简版_第1页
汇编语言 -精简版_第2页
汇编语言 -精简版_第3页
汇编语言 -精简版_第4页
汇编语言 -精简版_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、汇编汇编(hubin)指令系统指令系统精品资料目录(ml) 1、汇编语言简介、汇编语言简介 2、指令、指令(zhlng)的字节数的字节数 3、单片机的寻址方式、单片机的寻址方式精品资料1、汇编语言(hu bin y yn)简介 51单片机的程序编写可以有汇编单片机的程序编写可以有汇编(hubin)语言和相应的语言和相应的C语言,本章主要语言,本章主要通过汇编通过汇编(hubin)指令介绍指令介绍MCS-51的指的指令系统。令系统。 精品资料 汇编语言汇编语言(hu bin y yn)指令格式由以下几个部分组指令格式由以下几个部分组成:成: 标号:标号: 操作码操作码 目的操作数目的操作数 ,源

2、操作数,源操作数 ;注释;注释 MAIN: ADD A ,#10H ; (A)(A)+10H 方括号方括号 表示该项是可选项,表示有的指令没有这项。表示该项是可选项,表示有的指令没有这项。精品资料 标号是用户设定(sh dn)的符号,它实际代表该指令所在的地址。标号必须以字母开头,其后跟18个字母或数字,并以“:”结尾。操作码是用英文缩写的指令功能助记符。 它确定了本条指令完成什么样的操作功能。如:ADD表示加法操作。任何一条指令都必须有助记符。精品资料 目的操作数提供操作的对象,并指出一个目标地目的操作数提供操作的对象,并指出一个目标地址,表示操作结果存放址,表示操作结果存放(cnfng)单

3、元的地址;它单元的地址;它与操作码之间必须以一个或几个空格分隔。与操作码之间必须以一个或几个空格分隔。 如上例中如上例中A表示操作对象是累加器表示操作对象是累加器A的内容,并指出的内容,并指出操作结果又回送操作结果又回送A存放存放(cnfng)。 源操作数指出的是一个源地址(或立即数),表源操作数指出的是一个源地址(或立即数),表示操作的对象或操作数来自何处。它与目的操作数示操作的对象或操作数来自何处。它与目的操作数之间要用之间要用“,”隔开。隔开。 注释部分是用户对该条指令或该段程序功能的说注释部分是用户对该条指令或该段程序功能的说明。它以分号明。它以分号“;”开头,可以用中文、英文或某些符

4、开头,可以用中文、英文或某些符号来表示。号来表示。精品资料2、指令(zhlng)的字节数 在在8051单片机中,对于不同单片机中,对于不同(b tn)的指的指令,指令的字节数不相同。令,指令的字节数不相同。8051单片机有单片机有单字节,双字节或三字节指令。单字节,双字节或三字节指令。精品资料 通过上一节的学习,我们知道一条指令通通过上一节的学习,我们知道一条指令通常由两部分常由两部分(b fen)组成:操作码和操作数。组成:操作码和操作数。 操作码用来规定这条指令完成什么操作。操作码用来规定这条指令完成什么操作。操作数则表示这条指令所完成的操作对象,操作数则表示这条指令所完成的操作对象,即是

5、对谁进行操作。即是对谁进行操作。 指令的字节数分类与这两部分指令的字节数分类与这两部分(b fen)密切密切相关。相关。精品资料 2.1、 单字节指令:指令只有一个字节,操单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。在作码和操作数同在一个字节中。在80C51系列的指令系统中,共有系列的指令系统中,共有49条单字节指令。条单字节指令。 (1)单字节指令中既包含操作码信息,也)单字节指令中既包含操作码信息,也包含操作数信息。包含操作数信息。 例如例如(lr)数据指针加数据指针加1指令:指令:INC DPTR,由于操作的内容和对象都很明确,故不必由于操作的内容和对象都很明确,故不必再

6、加操作数字节。再加操作数字节。精品资料 (2)用一个字节中的几位来表示操作数或)用一个字节中的几位来表示操作数或操作数所在的位置。操作数所在的位置。 如如 MOV A,Rn 指令机器码为单字节指令机器码为单字节 rrr可表示为可表示为000111,分别,分别(fnbi)代表代表R0R7 11101rrr 精品资料2.2、 双字节(z ji)指令:其中一个字节(z ji)为操作码,另一个字节(z ji)是操作数。例如 把8位二进制数传送到累加器A的指令: MOV A, #data其中#data表示8位二进制数,也叫立即数,这就是双节指令。在80C51系列的指令系统中,共有45条双字节(z ji)

7、指令。精品资料 2.3、三字节指令则是一个(y )字节的操作码,两个字节的操作数。操作数可以是数据,也可以是地址。如: MOV DPTR, #1234H ANL direct, #data 8051单片机共有17条三字节指令。精品资料 小结:如何判断指令的字节数小结:如何判断指令的字节数 1.指令中既不包含直接地址指令中既不包含直接地址(dzh),也不,也不包含立即数,那么这样的指令为单字节指包含立即数,那么这样的指令为单字节指令;令; 2.指令中包含有直接地址指令中包含有直接地址(dzh)或立即数或立即数的,那么这样的指令为双字节指令;的,那么这样的指令为双字节指令; 3.指令中包含有直接地

8、址指令中包含有直接地址(dzh)又包含立又包含立即数的,那么这样的指令为三字节指令。即数的,那么这样的指令为三字节指令。精品资料3、单片机的寻址方式(fngsh)复习复习(fx)硬件知识:硬件知识: 51单片机的数据存储区单片机的数据存储区精品资料不同存储区的数据不同存储区的数据(shj),对其进行调用、修改的路径是不同,对其进行调用、修改的路径是不同的。的。精品资料寻址方式就是通过确定操作数据所在的地址把寻址方式就是通过确定操作数据所在的地址把操作数据提取出来的方法。操作数据提取出来的方法。本节通过寻址方式的讲解与本节通过寻址方式的讲解与MedWin软件仿真软件仿真调试相结合,帮助调试相结合

9、,帮助(bngzh)同学们学习如何同学们学习如何准确的调用不同存储区的内容。准确的调用不同存储区的内容。精品资料 在在8051单片机中,有单片机中,有7种寻址方式:种寻址方式: 1直接寻址直接寻址 2立即寻址立即寻址 3寄存器寻址寄存器寻址 4寄存器间接寄存器间接(jin ji)寻址寻址 5变址寻址变址寻址 6相对寻址相对寻址 7位寻址位寻址精品资料 1、直接寻址、直接寻址: 在指令中直接给出操作数据单元的地址。在指令中直接给出操作数据单元的地址。 适用数据区:适用数据区: 8051单片机中,用直接寻址方式可以单片机中,用直接寻址方式可以(ky)访问内部数据访问内部数据RAM区中区中00H-7

10、FH及及所有的特殊功能寄存器。所有的特殊功能寄存器。 示例:示例: MOV A, 30H ;RAM区区MOV A,TH0 ;特殊功能寄存器特殊功能寄存器MOV A,8CH精品资料 MedWin软件软件(run jin)仿真调试:仿真调试:MOV A, 30H精品资料 执行执行(zhxng)指令:指令: MOV A, 30H 执行执行(zhxng)前:累加器前:累加器A初始值为初始值为“00”。执行后:累加器执行后:累加器A的内容的内容变为变为30H地址里的内容地址里的内容“33”。调试寻址程序流程:调试寻址程序流程:明确程序中涉及的数明确程序中涉及的数据区域,执行指令,观察数据变化。据区域,执

11、行指令,观察数据变化。精品资料 2、立即寻址、立即寻址 若指令的操作数是一个若指令的操作数是一个(y )8位或位或16位位数,就称为立即寻址,指令中的操作数称数,就称为立即寻址,指令中的操作数称为立即操作数。为立即操作数。 在在8051单片机中采用单片机中采用“”号来表示后面的号来表示后面的是立即数而不是直接地址。是立即数而不是直接地址。 示例:示例: MOV A, #30H MOV DPTR, #2000H精品资料 比较:比较: MOV A, #30H;立即;立即(lj)寻址寻址 MOV A, 30H ;直接寻址;直接寻址执行执行(zhxng)指令:指令: MOV A, #30H精品资料3、

12、寄存器寻址、寄存器寻址 指定寄存器的内容指定寄存器的内容(nirng)作为操作数据,作为操作数据,在指令的助记符中直接以寄存器的名字来在指令的助记符中直接以寄存器的名字来表示操作数据的位置。表示操作数据的位置。寄存器寻址方式的寻址范围包括:寄存器寻址方式的寻址范围包括: (1)通用寄存器)通用寄存器R0-R7 。 (2)部分特殊功能寄存器。例如累加器)部分特殊功能寄存器。例如累加器ACC、B寄存器对以及数据指针寄存器对以及数据指针DPTR。 精品资料 示例示例(shl):MOV A, R0精品资料 比较比较(bjio)直接寻址与寄存器寻址直接寻址与寄存器寻址1、R0-R7对应的存储空间为对应的

13、存储空间为片内片内RAM的的00H-07H;2、部分特殊功能寄存器。、部分特殊功能寄存器。方便编程及满足某些指令格式要求方便编程及满足某些指令格式要求(yoqi)MOV A,R0MOV A,00H;执行结果相同执行结果相同MOVX A,R0MOVX A,00H;报错报错精品资料 4、寄存器间接、寄存器间接(jin ji)寻址寻址 若以寄存器的名称间接若以寄存器的名称间接(jin ji)给出操作给出操作数据的地址,则称为寄存器间接数据的地址,则称为寄存器间接(jin ji)寻址。寻址。 在这种寻址方式下,指令中工作寄存器在这种寻址方式下,指令中工作寄存器的内容不是操作数据,而是操作数据的地的内容

14、不是操作数据,而是操作数据的地址。址。 通常用工作寄存器通常用工作寄存器R0, R1或数据指针寄存或数据指针寄存器器DPTR来间接来间接(jin ji)寻址,在寄存器名寻址,在寄存器名称前面加一个符号来表示寄存器间接称前面加一个符号来表示寄存器间接(jin ji)寻址。寻址。精品资料 示例示例1: MOV 30H,#33H MOV R0,#30H MOV A, R0 该指令执行之前该指令执行之前(zhqin)R0寄存器的内寄存器的内容容30H是操作数据的地址,内部是操作数据的地址,内部RAM区中区中地址为地址为30H单元的内容单元的内容33H才是操作数据,才是操作数据,执行后,累加器执行后,累

15、加器A中的内容变为中的内容变为33H。精品资料 示例示例2: 利用寄存器间接寻址可以访问利用寄存器间接寻址可以访问 片外数据片外数据(shj)存储区存储区 MOV dptr,#4000h MOVX a,dptr ;xdata区区MOV r1,#20hMOVX a,r1 ;pdata区区精品资料 5、变址寻址、变址寻址 以某个寄存器的内容为基本地址,然后以某个寄存器的内容为基本地址,然后在这个基址上加以地址的偏移量,才是真在这个基址上加以地址的偏移量,才是真正的操作数据地址。正的操作数据地址。 用于访问程序存储区用于访问程序存储区 采用数据指针采用数据指针(zhzhn)DPTR或程序计数或程序计

16、数器指针器指针(zhzhn)PC的内容为基本地址,地的内容为基本地址,地址偏移量则是累加器址偏移量则是累加器A中的内容,将基址中的内容,将基址与偏移量相加,即以与偏移量相加,即以DPTR或者或者PC的内容的内容与与A的内容之和作为实际的操作数地址。的内容之和作为实际的操作数地址。精品资料 示例:示例:查表程序查表程序(chngx),当,当XX为为0-9的任一的任一数时,数时,r0的值为表的值为表tab中的对应值。中的对应值。mov dptr,#tabmov a,#XX movc a,a+dptrmov r0,atab:db 10,11,12,13,14,15,16,17,18,19精品资料 6

17、、相对寻址、相对寻址 在指令中给出的操作数为程序转移的偏在指令中给出的操作数为程序转移的偏移量。移量。 在指令中以在指令中以rel表示相对偏移量,表示相对偏移量,rel为一为一个带符号的常数,可以为正数也可以为负个带符号的常数,可以为正数也可以为负数,若数,若rel值为负数,则应用补码表示。值为负数,则应用补码表示。 一般格式:一般格式: SJMP rel 目的目的(md)地址源地址指令字节数地址源地址指令字节数rel 精品资料 示例:示例:SJMP 54H 假设该指令假设该指令(zhlng)所在的源地址为所在的源地址为2000H, rel的值为的值为54H,则转移后的目的地,则转移后的目的地

18、址为:址为:2000H+02+54H= 2056H.精品资料 7、位寻址、位寻址 8051有位处理功能,可以对数据位进行有位处理功能,可以对数据位进行(jnxng)操作,因此,就有相应的位寻址操作,因此,就有相应的位寻址方式。方式。 精品资料 位寻址的寻址范围:位寻址的寻址范围:1.片内片内RAM中的位寻址区中的位寻址区片内片内RAM中的单元地址中的单元地址20H2FH,共,共16个单元个单元128位,为位寻址区,位地址是位,为位寻址区,位地址是00H7FH。对这。对这128个位的寻址使用直接个位的寻址使用直接位地址表示。位地址表示。示例:示例: MOV C,2BH指令的功能指令的功能(gngnng)是把位寻址区的

温馨提示

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

最新文档

评论

0/150

提交评论