1、什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切关系?
人们习惯把每一条机器语言的语句叫机器指令,而又将所有机器指令的集合叫做机器的指令系统。
计算机设计者主要研究如何确定机器的指令系统,如何用硬件电路、芯片、设备来实现机器指令系统的功能。
计算机使用者根据机器指令系统所描述的功能,能很清楚地了解计算机内部寄存器-存储器的结构。
2、什么叫寻址方式?为什么要学习寻址方式?
寻址方式是指确定本条指令的数据地址,以及下一条将要执行的指令地址的方法。
寻址方式与硬件结构紧密相关,而且也直接影响指令格式和指令功能。
3、什么是指令字长、机器字长和存储字长?
指令字长取决于操作码的长度,操作数地址的长度和操作数地址的个数。
通常计算机中的数据存放在存储器或寄存器中,而寄存器的位数便可反映机器字长。
由于不同的机器数据字长不同,每台机器处理的数据字长也不统一,因此,为了便于硬件实现,通常要求多字节的数据在存储器的存放方式能满足“边界对准”的要求,例如,在对准边界的32位字长的计算机中,其存储器的存储字长的32位。
4、零地址指令的操作数来自哪里?一地址指令中,另一个操作数的地址通常可采用什么寻址方式获得?各举一例说明。
零地址指令的操作数来自堆栈指针。
一地址指令中,另一个操作数的地址的寻址方式:
隐含寻址,一地址格式的加法指令,另一个操作数隐含在累加器ACC中,这样累加器ACC成了另一个数的地址。
5、对于二地址指令而言,操作数的物理地址可安排在什么地方?请举例说明。
主存
寄存器
6、试比较间接寻址和寄存器间址。
间接寻址,指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元地址。它扩大了操作数的寻址范围,便于编制程序,在指令的执行过程中需要访存两次(一次间址)或多次(多次间址)。
寄存器间址,有效地址不是存放在存储单元中,而是存放在寄存器中,它比间接寻址少访问一次主存。
7、试比较基址寻址和变址寻址。
基址寻址,其操作数的有效地址EA等于指令字中的形式地址与基址寄存器中的内容相加。
变址寻址,其操作数的有效地址EA等于指令字中的形式地址A与变址寄存器IX中的内容相加之和。
基址寻址主要用于为程序或数据分配存储空间,故基址寄存器中的内容通常是由操作系统或管理程序指定的,而指令字中的地址A是可变的。在变址寻址中,变址寄存器的内容是由用户设定的,在程序执行过程中其值可变,而指令字中的地址A是不可变的。变址寻址主要用于处理数组问题,在数组处理过程中,可设A为数组的首地址,不断改变变址寄存器IX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。
8、画出先变址再间址及先间址再变址的寻址过程示意图。
9、画出SUB@R1指令对操作数的寻址及减法过程的流程图。设被减数和结果存于ACC中,@表示间接寻址,R1寄存器的内容为2074H。
10、画出执行ADD*-5指令(*为相对寻址特征)的信息流程图。设另一个操作数和结果存于ACC中,并假设(PC)=4000H。
11、设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字节是相对位移量,用补码表示。假设当前转移指令第一字节所在的地址为2000H,且CPU每取出一个字节便自动完成(PC)+1->PC的操作。试问当执行JMP*+8和JMP*-9指令时,转移指令第二字节的内容各位多少?
06H
F7H
12、某机主存容量为4M*16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:
(1)画出一地址指令格式并指出各字段的作用;
(2)该指令直接寻址的最大范围;
(3)一次间址和多次间址的寻址范围;
(4)立即数的寻址范围(十进制表示);
(5)相对寻址的位移量(十进制表示);
(6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?
(7)如何修改指令格式,使指令的寻址范围可扩大到4M?
(8)为使一条转移指令可转移到主存的任一位置,可采取什么措施?简要说明之。