本文共 2124 字,大约阅读时间需要 7 分钟。
理解概念
概念: 1、 操作码、地址码的概念 2、 根据地址码数目不同分类 3、 根据指令长度分类 4、 根据操作码的长度不同分类 5、 根据操作类型分类
指令含义:OP(A1)→A1 ,完成一条指令需要3次访存:取指→读A1→写A1
②需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC,这种方式属于隐含寻址)
指令含义:(ACC)OP(A1)→ACC,完成一条指令需要2次访存:取指→读A1
注:A1指某个主存地址,(A1)表示A1所指向的地址中的内容
指令含义:(A1)OP(A2)→A1
完成一条指令需要访存4次,取指→读A1→读A2→写A1
常用于需要两个操作数的算术运算、逻辑运算相关指令指令含义:(A1)OP(A2)→A3
完成一条指令需要访存4次,取指→读A1→读A2→写A3
完成一条指令需要访存4次,取指→读A1→读A2→写A3
正常情况下:取指令之后PC+1指向下一条指令
四地址指令:执行指令后,将PC的值修改为A4所指地址
答:n位地址码的直接寻址范围为2ⁿ,若指令总长度固定不变,则地址码数量越多,寻址能力越差
指令字长:一条指令的总长度(可能会变)
机器字长:CPU进行一次整数运算所能处理的二进制数据的位数(通常和ALU直接相关)
存储字长:一个存储单元中的二进制代码位数(通常和MDR位数相同)
半字长指令、单字长指令、双字长指令――指令长度是机器字长的多少倍
指令字长会影响取指令所需时间。如:机器字长=存储字长=16bit,则取一条双字长指令(32bit)需要两次访存
定长指令字结构:指令系统中所有指今的长度都相等
变长指令字结构:指令系统中各种指令的长度不等
定长操作码:指令系统中所有指令的操作码长度都相同
n位→2ⁿ条指令
可变长操作码:指令系统中各指令的操作码长度可变
LOAD作用:把存储器中的数据放到寄存器中
STORE作用:把寄存器中的数据放到存储器中
算术:加、减、乘、除、增1、减1、求补、浮点运算、十进制运算
逻辑:与、或、非、异或、位操作、位测试、位清除、位求反
算术移位、逻辑移位、循环移位(带进位和不带进位)
程序控制类指令主要包括无条件转移、有条件转移、子程序调用和返回指令、循环指令等。
无条件转移JMP
条件转移JZ:结果为0;JO:结果溢出;JC:结果有进位
调用和返回 CALL和RETURN
陷阱(Trap)与陷阱指令
循环指令
我们写的程序在执行时会遇到if、else,这时就会触发转移操作
CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)
中断隐指令是由硬件实现的,并不是指令系统中存在的指令,更不可能属于程序控制类指令。
采用不同寻址方式的目的是为了缩短指令字长,扩大寻址空间,提高编程的灵活性,但这也提高了指令译码的复杂度。
程序控制是靠转移指令而非寻址方式实现的。
无条件转移指令是指程序转移到新的地址后继续执行,因此必须给出下一条指令的执行地址,并送入程序计数器(PC),而不是将指令的地址码送入地址寄存器。
★为了缩短指令中某个地址段的位数,有效的方法是采取寄存器寻址
。寄存器寻址中,只需指定寄存器的编号,因此能有效地缩短地址码的位数。
★简化地址结构的基本方法是尽量采用隐地址。隐地址不给出明显的操作数地址,而在指令中隐含操作数的地址,因此可以简化地址结构,如零地址指令。
程序计数器和指令寄存器的位数各取决于存储器的字数,指令字长。机器按字寻址,程序计数器(PC)给出下一条指令字的访存地址(指令在内存中的地址),因此取决于存储器的字数;指令寄存器(IR)用于接收取得的指令,因此取决于指令字长。
转移指令、子程序调用与返回指令用于解决变动程序中指令执行次序的需求,而不是数据调用次序的需求
特权指令,通常仅用于实现系统软件,这类指令一般不提供给用户
转载地址:http://hwmzi.baihongyu.com/