指令的寻址方式

2.3.4

指令的寻址方式

冯·诺依曼提出了现代计算机的工作方式,即存储程序的思想。其外在的表现形式是,在主存储器中存储着两种性质截然不同的信息:数据和指令。关于数据的寻址方式下面将详细讨论。

1.指令寻址的概念

指令的寻址需要指出下一条将要执行的指令在存储器中的地址。一般地说有两种形式,当前执行的指令不改变程序的执行顺序(非转移类指令)时将由程序计数器直接提供:若当前执行的指令是转移类指令,则有多种方式提供下一条指令的地址,这也是下面讨论的重点。

2.程序计数器

程序计数器是指令寻址的焦点,也是存储指令寻址的结果。改变程序计数器的内容就会改变程序执行的顺序。由程序计数器的硬件结构可知,它有自动修改(+1)功能,用于执行非转移类指令:还有接收内部总线内容的功能,用于执行转移类指令或中断处理时的(由硬件完成的)转移类操作。由此可见,指令的寻址方式有多种,但实质上都会改变程序计数器中的内容。

3.指令的寻址方式

(1)开机后的第一条指令地址

当打开机器电源或按下复位(RESET)键时,CPU内部会将指令计数器复位。对于不同的机型,复位后的内容是有差异的。例如,Z80将指令计数器置为全零:ntl8088/8086将CS:IP置为OFFFFH:0000H。当然,它们就是开机后要执行的第一条指令的地址。单片机则从程序存储器的0号地址开始执行程序。

(2)顺序执行的寻址

计算机工作过程是:先取指令,再执行指令。由于在执行指令时程序计数器会自动修改其内容,也就是进行“十1”操作,为取下一条指令做准备,这样周而复始地进行就会完成顺序执行的程序。可见这种寻址方式是机器自动完成的,当然对用户而言是不透明的。

“十1”操作的目的一般是指出下条指令的地址。对于微型机而言,单字节指令就是下一条指令地址,对于多字节指令则视具体字节的不同,“十1”操作的次数也不同。同样,这一过程也是由机器自动识别、自动修改和自动完成的,如图2.6所示。

豫ICP备19006514号 网站地图 免责声明:如果侵犯了你的权益,请发邮件至:419017772@qq.com,我们会及时删除侵权内容,谢谢合作!