18.10.23 第三周 指令系统

xiaoxiao2022-06-11  34

2^8=256    2^16=65536(64k)

指令编码格式及分类寻址方式数据传送类指令算术运算类指令逻辑运算类指令控制程序转移类指令位操作类指令

指令编码格式

一条指令表示计算机所完成的某种操作

有操作码和操作数两部分组成

例如: MOV A,R1

本系统有三种指令编码格式:

单字节指令(49条)双字节指令(46条)三字节指令(16条)

例如:

一字节指令空操作NOP的编码格式为:

00000000 <--操作码

数据传送指令MOV A,R1的编码格式为:

11101001

两字节指令MOV A,#40H的编码格式为

011100100 <--操作码

01000000<--立即数40H

指令分类

按指令功能分为

数据传送类指令 29条算术运算类指令 24条逻辑运算类指令 24条控制转移类指令 17条位操作指令 17条

上述111条指令中,64条执行时间为1个机器周期,45条位两个机器周期,只有乘除指令为四个机器周期。

当主频为12MHz时,典型指令执行时间为1微秒

寻址方式

寻址方式是指操作数存放存储单位地址的表示形式

MCS-51指令系统共提供七种寻址方式

1.立即寻址

该方式把操作数(即立即数)包含在指令字节中。

在指令格式中,在立即数前冠以符号“#”表示立即寻址方式

例如: MOV A,#40H; A<--40H

MOV DDTR,#1000H;DDTR<--1000H

2.直接寻址

该方式是把操作数的地址包含在指令字节中,而操作数本身则存放在该地址指示的数据存储单元中

在指令格式中,操作数的地址直接写在指令中

如: MOV A,40H;A<--(40H)

设:(40H)=2BH

3.寄存器寻址方式

该方式把操作数存放在指定的寄存器中。能实现这种寻址方式的寄存器:R0-R7,A,B,DPTR

例如: MOV A,#30H;A<--30H

A:立即寻址 #30H:寄存器存址

MOV R0,R7;R0<--(R7)

RO,R7:寄存器寻址

4.寄存器间接寻址方式

该方式是把操作数的所在地址存放在指定的寄存器中

能实现这种寻址方式的寄存器:R0,R1,DPTR.

在指令格式中,在寄存器前面冠以符号“@”表示。

例如:MOV A,@R0;1<--((R0))

A:寄存器寻址 @R0:寄存器间接寻址

设:(R0)=40H (40H)=3FH

执行前:(R0)=40H (40H)=3FH

执行后:(R0)=40H (40H)=3FH (A)=3FH

5.基址加变址寻址方式

该方式把DPTR或PC寄存器作为基址寄存器,累加器A作为变址寄存器,(A)+(PC)或(A)+(DPTR)的和作为操作数的16位地址

这种寻址方式的指令只有三种:

MOVC A,@A+DPTR ; A<--((A)+(DPTR))

MOVC A,@A+PC; A<--((A)+(PC))

JMP @A+DPTR;跳转至(A)+(DPTR)

前两条是程序存储器读指令,用MOVC助记符。

转载请注明原文地址: https://www.6miu.com/read-4931959.html

最新回复(0)