18.10.23 第三周 指令系统

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

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

指令编码格式

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

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

例如: MOV A,R1

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

  1. 单字节指令(49条)
  2. 双字节指令(46条)
  3. 三字节指令(16条)

例如:

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

00000000 <--操作码

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

11101001

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

011100100 <--操作码

01000000<--立即数40H

指令分类

按指令功能分为

  1. 数据传送类指令 29条
  2. 算术运算类指令 24条
  3. 逻辑运算类指令 24条
  4. 控制转移类指令 17条
  5. 位操作指令 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助记符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值