计算机组成原理之指令微操作(简化总结)

一、符号标记含义

  • IR:指令寄存器,其功能是存放当前正在执行的指令
  • PC:程序计数器,其功能是存放当前欲执行的指令地址,并可自动计数形成下一条指令地址
  • ALU:算术逻辑运算单元,为运算器核心部件,其功能是进行算术和逻辑运算
  • ACC:累加器,是运算器中既能存放运算前的操作数,又能存放运算结果后的寄存器
  • MAR:存储器地址寄存器,在主存中用来欲访问的存储单元的地址
  • MDR:存储器数据缓冲寄存器,在主存中用来存放某从某单元读出,或要写入某存储单元的数据

二、例题为例

1.根据汇编指令写出其微操作

1.以单微指令步骤运行下列指令,分析每一步微操作的相同
与不同。有PC+1操作的指令字长与没有的有区别吗?
ADD A,#12H
MOV A,#20H
MOV R0,#60H
MOV @R0,A
SUB A,60H
MOV R1,#30H
SUB A,R1
MOV A,#00H
ADDC A,R1
END

  • 答:
    首先有PC+1操作的指令字长与没有的是有区别的,有PC+1的是双字指令,没有PC+1的是单字指令。
    第一条指令 ADD A,#12H(这是一条加法指令)
    操作码是ADD 表示加法,
    取指令阶段:1> M[PC]=IR
    执行指令:2>PC+1,M[PC]→W,(W用来表示工作寄存器,因为加法运算,所以要用到运算器,注意这里的M[PC]可以理解为代表操作数本身)
    3>A+W→D→A(即将结果通过直通门D后,存放在运算器中的A累加器寄存器中)
    第二条指令MOV A,#20H(这是一条数据传送指令)
    取指令阶段:1> M[PC]=IR
    执行指令:2>PC+1,M[PC]→A
    第三条指令MOV R0,#60H(这是一条数据传送指令)
    取指令阶段:1> M[PC]=IR
    执行指令:2>PC+1,M[PC]→R0
    第四条指令MOV @R0,A(这是一条数据传送指令,但不同的是这里采用的间接寻址,同时是一条单字指令)
    取指令阶段:1> M[PC]=IR
    执行指令:2>(R0)→MAR(这一步就是将R0寄存器的地址内容传递给MAR,‘即相当于间接寻址中的第一次寻址’)
    3>A→D→M[MAR] (这一步即是将A里的数据通过直通门D传给M[MAR] 最终的地址操作数)
    第五条指令SUB A,60H(这是一条减法操作的指令,采用的是直接寻址方式)
    取指令阶段:1> M[PC]=IR
    执行指令:2>PC+1,M[PC]→MAR
    3>M[MAR]→W(因为涉及减法指令运算,所以需要把60所在的地址的内容放到运算器中的工作寄存器W中)
    4>A-W→D→A
    第六条指令MOV R1,#30H(这是一条数据传送指令,采用的是立即数寻址方式)
    取指令阶段:1> M[PC]=IR
    执行指令:2>PC+1,M[PC+1]→R1
    第七条指令SUB A,R1(这是减法指令,同时也是单字指令)
    取指令阶段:1> M[PC]=IR
    执行指令:2>(R1)→W(因为涉及减法指令运算,所以需要把R1寄存器地址所在的内容放到运算器中的工作寄存器W中)
    3>A-W→D→A
    第八条指令MOV A,#00H(这是一条数据传送指令采用的是立即数寻址)
    取指令阶段:1> M[PC]=IR
    执行指令:2>PC+1,M[PC]→A
    第九条指令ADDC A,R1(这是一条将带进位的加法指令,同时也是一条单字指令)
    取指令阶段:1> M[PC]=IR
    执行指令:2>(R1)→W
    3>A+W+Rcy → D → A

2、由微操作指令写出其汇编指令格式

在这里插入图片描述

注意:(指令执行顺序从左至右!累加器A
初值00H,立即数和地址都是20H )根据上面的四条微操作流程图做出其汇编指令格式

  • 看第一条:有PC+1,是双字指令,且不涉及运算,只有两步,故为数据传送指令
    即MOV R1,#20H
  • 看第二条:无PC+1,故为单字指令,涉及减法运算,又第二步R1→W,所以R1为最右变操作数
    故SUB A,R1
  • 看第三条:有PC+1,是双字指令,且不涉及运算,只有三步,故为数据传送指令,又看第二步,M[PC]→MAR,这是采用直接寻址
    故MOV A,20H
  • 看第四条:无PC+1,故为单字指令,又看第二步,R1→W,说明R1寄存器充当最右边的操作数,而第三步,含Rcy参与加法,故为带进位的加法运算充当操作码
    即ADDC A,R1

三、写在后面

文章如有错误地方,请读者朋友们评论指正,谢谢。

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页