直接寻址方式。
因为直接寻址方式的指令码需要提供 *** 作数的地址,以及 *** 作码,所以指令码长度最长。
寻址方式就是处理器根据指令中给出的地址信息来寻找有效地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。
采用顺序寻址方式指令码长度最长。
指令的寻址方式有以下两种。
一、顺序寻址方式由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令地顺序进行。也就是说,从存储器取出第1条指令,然后执行这条指令。接着从存储器取出第2条指令,再执行第二条指令。接着再取出第3条指令。
这种程序顺序执行的过程,称为指令的顺序寻址方式。为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。
二、跳跃寻址方式
当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。注意,程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。
写了一个详细的例子,作为参考: 无标题文档 function sel1_click() { var nodeSel1=documentgetElementById("sel1"); //获取select元素 var index = nodeSel1selectedIndex; /
D:\>debug
-a
143F:0100
MOV
AX,0;
143F:0103
SUB
AX,AX;
143F:0105
XOR
AX,AX;
143F:0107
MULBX;
143F:0109
-u
100
108
143F:0100
B80000
MOV
AX,0000
143F:0103
29C0
SUB
AX,AX
143F:0105
31C0
XOR
AX,AX
143F:0107
F7E3
MUL
BX
-
看到了第一条指令占了100到102的3字节,其它都是2字节,所以第一条最长。
有一段程序:内存地址 机器码 汇编指令
1000:0 b8 00 00 mov ax,0--B8H 00H 00H 共三字节
1000:3 e8 01 00 call s---也是三字节
1000:6 40 inc ax---仅有40H一个字节
1000:7 58 s:pop ax--也是一字节
-------------------------------
是不是看它的机器码,两位为一个字节?--是的。
怎么去算它的8位或是16位位移量?-- 一般不用人工计算,可由编译软件自动计算。
以上就是关于什么寻址方式指令码长度最长全部的内容,包括:什么寻址方式指令码长度最长、采用什么寻址方式指令码长度最长、如何动态获取 Puppet node 指令定义的机器列表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)