当前位置: 首页 > news >正文

第三章 指令系统

3.1 指令系统概述

指令系统:指令的集合

介绍MCS-51汇编语言的指令系统。

MCS-51的基本指令共111条,按指令所占的字节来分:

(1) 单字节指令49条;

(2) 双字节指令45条;

(3) 三字节指令17条。

按指令的执行时间来分:

(1) 1个机器周期(12个时钟振荡周期)指令64条

(2) 2个机器周期(24个时钟振荡周期)指令45条

(3)只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期)。

 12MHz晶振:机器周期为1μs。

指令的长度是单字节并不一定执行起来就是一个机器周期,例如:

单字节双周期 RET

单字节四周期 乘(MUL) 除(DIV)

双字节单周期 ANL A,#00H

51指令不区分大小

3.2 指令格式

        由两部分组成,即操作码和操作数

        操作码用来规定指令进行什么操作操作数则是指令操作的对象。

        有单字节指令、双字节指令、三字节不同长度的指令,格式不同。

(1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。

(2)双字节指令:一个字节为操作码,另一个字节是操作数。

(3)三字节指令:操作码占一个字节,操作数占二个字节。其中操作数既可能是数据,也可能是地址。

3.3 指令系统的寻址方式

         寻址方式就是在指令中说明操作数所在地址的方法,一共有7种

1.寄存器寻址方式

操作数在寄存器中:

                    MOV   A,Rn;(Rn)→A,n=0~7

         表示把寄存器Rn的内容传送给累加器A

寻址范围包括:

(1)4组通用工作寄存区共32个工作寄存器。

(2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器DPTR等。

2.直接寻址方式

操作数直接以单元地址的形式给出:

                MOV   A,40H

寻址范围:

(1) 内部RAM的128个单元。

(2) 特殊功能寄存器。除了以单元地址的形式外, 还可用寄存器符号的形式给出

例如: MOV A,80H 与 MOV A,P0是等价的。

3. 寄存器间接寻址方式

        寄存器中存放的是操作数的地址。

        在寄存器的名称前面加前缀标志 “ @”

        访问内部RAM(数据存储器)或外部数据存储器的低256个字节时只能采用R0 或R1作为间址寄存器

例如:MOV R1,#40H

          MOV A,@R1;

         把内部RAM中地址为40H单元内容送A。

寻址范围:

(1)访问内部RAM区,51系列128个字节,52系列256个字节, 其通用形式为@Ri

(2)对片外数据存储器的64K字节的间接寻址,例如: MOVX A,@DPTR        

(3)片外数据存储器的低256字节,不建议使用。例如:MOVX A,@Ri

(4)堆栈区

        堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器.

4.立即寻址方式

        操作数在指令中直接给出,需在操作数前面加前缀 “ # ” , 若 立即数的首位为A~F前面还要加零。例如: MOV A,#40H       MOV A,#0FFH

 注意区别:

  1. MOV A, #40H

    • 这条指令表示立即寻址。
    • # 符号表示紧跟其后的数值是一个立即数,也就是说,这是一个直接嵌入到指令中的常数。
    • 40H 是一个十六进制数,表示要直接加载到累加器 A 中的值。
    • 因此,MOV A, #40H 的意思是将十六进制数 40H(即十进制的 64)直接传送到累加器 A 中。
  2. MOV A, 40H

    • 这条指令可能表示直接寻址,但具体的含义取决于汇编器和所用的微处理器架构。
    • 在某些汇编语言中,比如8051汇编语言,没有 # 符号,直接写 MOV A, 40H 表示将地址 40H 处的内存内容加载到累加器 A 中。
    • 这里 40H 是一个内存地址,而不是立即数。
    • 因此,MOV A, 40H 的意思是将内存地址 40H 中的数据传送到累加器 A 中。

 5.基址寄存器加变址寄存器间址寻址方式

        本寻址方式是以DPTR或PC作基址寄存器以累加器A作为变址寄存器.

        例如:指令 MOVC A,@A+DPTR 其中A的原有内容为 05H,DPTR的内容为0400H,该指令执行的结果是把 程序存储器0405H单元的内容传送给A。

说明:

(1)本寻址方式是专门针对程序存储器的寻址方式, 寻址范围可达到64KB。

(2)本寻址方式的指令只有3条

MOVC A,@A+DPTR

MOVC A,@A+PC

JMP @A+DPT

6.位寻址方式

        MCS-51有位处理功能,可以对数据位进行操作,例如: MOV C,40H 是把位40H的值送到进位位C。

寻址范围包括:

(1)内部RAM中的位寻址区。位有两种表示方法,例 如,40H;另一种是单元地址加上位,例如, (28H).0,指的是28H单元中的最低位。它们是等价 的。

(2)特殊功能寄存器中的可寻址位 可寻址位在指令中有如下4种的表示方法:

a. 直接使用位地址。例如PSW.5的位地址为0D5H。

b.位名称的表示方法。例如:PSW.5是F0标志位,可使用F0表示该位。

c.单元地址加位数的表示方法。例如 :(0D0H).5。

d. 特 殊 功 能 寄 存 器 符号加位 数 的表示方法。例 如:PSW.5

7.相对寻址方式

        在相对寻址的转移指令中,给出了地址偏移量,以 “rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址。

        目的地址=转移指令所在的地址 + 转移指令的字节数 + rel

        偏移量rel是一带符号的8位二进制数补码数 。

                范围是:–128 ~ +127

        向地址增加方向最大可转移(127+转移指令字节)个 单元地址,向地址减少方向最大可转移(128-转移 指令字节)个单元地址。

3.4 MCS-51指令系统分类介绍

 111条指令,按功能分类,可分为下面5大类:

(1)数据传送类(28条)

(2)算术操作类(24条)

(3)逻辑运算类(25条)

(4)控制转移类(17条)

(5)位操作类(17条)

指令中符号的意义:

        Rn 当前寄存器区的8个工作寄存器R0~R7(n=0~ 7)。

        Ri 当前选中的寄存器区中可作间接寻址寄存器的2个寄存器R0、R1(i=0,1)。

        Direct 直接地址,即8位的内部数据存储器单元特殊功能寄存器的地址

        #data 包含在指令中的8位立即数

        #data16 包含在指令中的16位立即数。

        rel 相对转移指令中的偏移量,为8位的带符号补码数

        DPTR 数据指针,可用作16位的数据地址寄存器。

        bit 内部RAM或特殊功能寄存器中的直接寻址位。

        C(或Cy) 进位标志位或位处理机中的累加器。

        addr11 11位目的地址

        addr16 16位目的地址

        @ 间接寻址寄存器前缀,如@Ri,@A+DPTR

        (X) X中的内容。

        ((X)) 由X寻址的单元中的内容。

        → 箭头右边的内容被箭头左边的内容所取代。

3.4.1 数据传送类指令

        使用最频繁的一类指令,通用格式: MOV  <目的操作数><源操作数>, 属“复制”性质,而不是“搬家”

数据传送类指令不影响标志位, Cy、Ac和OV但不包括奇偶标志位P

 

 

 

 

 

 

 

 3.4.2 算术操作类指令

 

 

 

相关文章:

  • K8s控制器Deployment详解
  • 小程序是否支持SSE
  • 《量子潮涌下,DataWorks中AI模型训练框架的变革征途》
  • 极狐GitLab 17.9 正式发布,40+ DevSecOps 重点功能解读【二】
  • C#批量压缩并上载CSV数据文件到Box企业云盘
  • 统一数据返回格式
  • IDEA入门及常用快捷键
  • AI-Deepseek + PPT
  • 用Python之requests库调用大模型API实现多轮对话
  • Vulnhub-Hackme靶机
  • centos7服务器 Java和Hadoop安装教程,用VMware和finalshell
  • 2025东方财富笔试考什么?cata能力测评攻略|答题技巧真题分享
  • 浙江省一体化数字资源系统(IRS)介绍(七个方面展开)
  • PHP之字符串拼接
  • vscode远程ssh链接服务器
  • 内网环境下如何快速下载大模型
  • 【Python爬虫】利用代理IP爬取跨境电商AI选品分析
  • 3.4刷题
  • RS485总线为什么要加终端电阻?
  • Blazor-路由模板(下)
  • 沙县小吃中东首店在沙特首都利雅得开业,首天营业额超5万元
  • 6连败后再战萨巴伦卡,郑钦文期待打出更稳定发挥
  • 深一度|在亚马尔的天才面前,姆巴佩戴上“帽子”又如何
  • 马鞍山市原常务副市长黄化锋一审获刑11年,涉案金额三千余万元
  • 印度证实印巴已同意停火
  • 李在明正式登记参选下届韩国总统