第三章 80C51系列单片机指令系统
3·1 80C51系列中所有单片机是否使用完全相同的指令系统?
答: 80C51系列单片机以MCS一51系列的8051为基核,采用CHMOS工艺,其指令系统与MCS一51单片机的指令系统完全相同。
但是在一些非总线型的产品中,由于引脚的减少,不能扩展外部数据存储器,MOVX类的指令是无效的;相应的,也不能扩展外部程序存储器,ACALL、LCALL、AJMP及LJMP类的指令的使用也将受到限制。
3·2 区别 CPU时存中的时钟周期、节拍(相)、状态周期、机器周期、指令周期。
答: 80C51有内部时钟振荡器,在振荡器外部引脚XTAL2、XTALl上并联石英谐振器和振荡 电容后产生单片机的基本时钟频率fosc.。fosc.是单片机时序状态的基础。 时钟周期: 基本时钟频率fosc.,其振荡周期为Tosc.,也称时钟周期。 状态周期: 由两个时钟周期Tosc构成一个状态周期Ts。 节拍: 一个状态周期里将两个Tosc分成Pl、P2节拍(或相)。
机器周期: 6个状态周期Ts为一个机器周期Tw。机器周期是指令周期的基本单位。
指令周期: 完成一条指令操作需要的机器周期数,称为指令周期。80C51系列中通常有单周期指令、双周期指令及四周期指令等。
3·3 请区别汇编指令、指令代吗、指令周期、指令长度(字节教)。
答: 汇编指令:是指令系统最基本的书写方式,它由助记符、目的操作数、源操作数构成。格式 如下:
助记符 目的操作数,源操作数 ;(注释)
指令代码: 是程序指令的二进制数字表示方法,是在程序存储器中存放的数据形式。 指令周期: 是指完成一条指令操作需要的机器周期数。
指令长度: 是指指令代码所占的字节数,有单字节指令、双字节指令和三字节指令。无论是单字节、双字节还是三字节指令,第1个字节代码为操作码,它表达了指令的操作功能;第2、3个字节则为操作数,可以是地址或立即数。
3·4 80C51指令系统中有哪些寻址方式? 相应的寻址空间在何处? 请举一例说明。 答: 1. 80C51指令系统的寻址万式
80C51指令系统中有寄存器寻址、直接寻址、间接寻址、立即寻址、位寻址、基址变址寻址和相对寻址七种寻址方式。 (1)寄存器寻址方式
80C51中所有的工作寄存器R0~R7和SFR都是可寻址寄存器。在寄存器寻址操作中, 这些寄存器都以寄存器名作指令操作数。 在寄存器寻址方式的操作指令中,寄存器内容作为操作数,可以是源操作数或目的操作 数。例如:
INC DPTR ;DPTR寄存器内容加1
MOV A,R7 ;工作寄存器R7内容送累加器A中 DIV AB ;A内容除以B寄存器内容 XCH A,R6 ;A内容与R6内容交换
(2)直接寻址方式
直接寻址方式的操作指令直接把地址作为操作数来运行,既可作源操作数,也可作目的操作数。如:
MOV 30H,40H ;把片内存储器40H单元的内容送入
;30H单元
MOV R6,DPH ;寄存器DPH的直接寻址,将DPH
;中的内容送入R6
(3)间接寻址方式
间接寻址寄存器有Ri(i=0、1)和DPTR。间接寻址时,在间接寻址寄存器标记前加@符 号。间接寻址时,寄存器的内容是操作数的地址。
●通过@Ri可以对片内数据存储器的00H~FFH单元间接寻址。如将40H中的内容 送入累加器A申,其间接寻址操作如下:
MOV Rl,#40H ;用Rl作间接寻址寄存器,给Rl
;赋予地址值
MOV A,@R1 ; @Rl中内容送人A申
●通过@DPTR对片外数据存储器0000H~FFFFH的间接寻址。如将A中的内容送 入片外数据存储器385FH单元中,其间接寻址操作如下:
MOV DPTR, #385FH ;用DPTR作间接寻址寄存器,给DPTR
;赋以地址值
MOVX @DPTR,A ;A中的内容送人片外RAM的385FH
;单元中
(4)位寻址方式
80C51中有完全服务于位寻址操作的布尔指令系统。为了满足位操作中位状态的缓冲、 传送、运算,将进位位C作为位寻址操作的位累加器。
在位寻址操作中,位单元可以使用地址编号或位地址名。如:
MOV 5FH,C ;将进位位C的状态送5FH位地址中 ANL C,5FH ;将5FH的位状态与进位位C的状态
;相\与\,其结果保留在C中
SETB TR0 ;将TCON中的TR0置位
CLR 8CH ;将TCON中的TR0清零,TR0的
;位地址为8CH
(5)立即寻址方式
指令中常常要使用一些常数来参与指令操作,由于这些常数能立即传送或赋值,故称为立即数。立即数前面必须加\标记。
指令中的立即数有8位立即数#data8和16位立即数#datal6。由于立即数是一个常 数,不是物理空间,故立即数在寻址操作中只能作为源操作数。如:
MOV A,#40H ;立即数40H给A赋值
MOV DPTR,#385FH ;立即数385FH给DPTR赋值
ANL A,#55H ;A中的数与55H相\与\,其结果放在A中 (6)基址变址寻址方式
基址变址寻址方式是以一个基地址加一个变量地址的寻址操作方式。作为基地址使用的 有PC指针和DPTR地址指针;A作为变量地址使用。
基址变址寻址方式是一种间接寻址方式,基址变址作为间接地址。采用基址变址寻址操 作的指令只有以下三条,即:
MOVC A,@A+DPTR ;查表指令 MOVC A,@A+PC ;查表指令 JMP @A +DPTR ;散转指令
前两条用于程序存储器的查表操作,后一条则用于程序的分支散转。 (7)相对寻址方式
相对寻址是将程序转移到相对地址的寻址转移操作。
相对寻址中,相对地址rel是一个8位数的地址偏移量,是相对于相对转移指令下一条指令第一个指令代码的地址偏移量。程序转移的范围为-128~+127,即向前(PC值加大)转移,最大为127个字节,向后转移(PC值减小)可转移128个字节。
相对寻址操作使用在相对转移指令中,如:
DJNZ R0,SIN1 ;工作寄存器R0减1不为零时
;程序转移到SINl标号处
2. 80C51指令系统中各寻址方式的寻址空间
80C51指令系统中各寻址方式的寻址空间列入题表3-1中
题表3-1 80C51指令系统中寻址方式和寻址空间
3·5 片内RAM 20H~2FH中的128个位地址与直接地址 00H~7FH形式充全相同,如何
在指令中区分出位寻址操作和直接寻址操作?
答: 虽然,片内RAM 20H~2FH中的128个位地址与直接地址00H~7FH形式完全相同,但 是在位寻址操作和直接寻址操作中,这两者的区别是很明显的。位寻址的操作只适用于下列 位指令,而直接地址操作对这些指令是无效的。 (1)布尔传送指令
MOV C,bit ;(C)←(bit) MOV bit,C ;(bit) ←(C) (2)布尔状态控制指令 ①位清除(CLR)指令:
CLR bit ;(bit) ←0 ②位置1(SETB)指令
SETB bit ;(bit) ←l ③位取反(CPL)指令
相关推荐: