定长指令码:
由于定长指令码中所有指令的数据部分长度相同,故计算机读取数据部分时间相同,众生平等。
此时最快的是立即寻址方式,因为读到数据的时候可以立即获得操作数。
变长指令码:
操作数的位数不同,其中隐含寻址操作数位数为0,寄存器寻址操作数位数较短。而此时立即寻址存放的是二进制操作数的补码,位数远大于前二者。故此时最快的是寄存器寻址和隐含寻址。
重点知识点辨析:
你可能会在变长指令码处产生疑问:
假设一个操作数的位数相同的话,我采用隐含寻址和寄存器寻址的时间不就是:读取操作数的时间+访问ACC或者寄存器的时间,而直接寻址的时间是:读取操作数的时间。这不明显小于前者吗?为什么还要说隐含寻址和寄存器寻址更快呢?
答案是其访问一个操作数的时间不同,看似都是读取一个相同长度的补码,但是寄存器和ACC的访问速度要远大于读取指令的速度,原因是其内部使用了相联存储器,内部可以并行传输数据。