设计扩展操作码指令格式时,必须注意:
(1)不允许短码是长码的前缀(短操作码不能与长操作码前面部分的代码相同)
(2)各指令的操作码一定不能重复
频率较高的指令,分配较短的操作码,减少指令译码和分析的时间。
PC存放当前欲执行指令的地址。
指令的地址码字段则保存操作数地址。
运算型指令寻址的是操作数。
转移性指令寻址的是下次欲执行指令的地址。
程序控制类指令:
无条件转移、有条件转移、子程序调用、返回、循环指令。
中断隐指令由硬件实现,不属于指令系统中的指令。
零地址的运算类指令又称堆栈运算指令,参与的两个操作数来自栈顶和次栈顶单元。
为了便于取指,指令的长度通常为存储字长的整数倍。
单字长指令是指令长度等于机器字长的指令。
单字长指令可加快取指令的速度。
单地址指令可能有一个操作数,也可能有两个操作数(其中一个存于ACC)
问:一个计算机系统采用32位单字长指令,地址码为12位,如果定义了250条二地址指令,那么还可以有( )条单地址指令
答:地址码为12位,则二地址指令的操作码长度为32-12-12=8位,已定义了250条二地址指令,28-250=6,则可以设计出单地址指令6X212=24K条。
问:某计算机按字节编址,指令字长固定且只有两种指令格式,其中三地址指令29条,二地址指令107条,每个地址字段为6位,则指令字长至少应该是( )
答:三地址指令有29条,所以它的操作码至少为5位。以5位进行计算,它剩余32-29=3种操作码给二地址。给而二地址另外多了6位给操作码。因此它数量最大达3*64=192.所以指令字长最少为23位,因为计算机按字节编址,需要是8的倍数,所以指令字长至少应该是24位。