程序员可以访问哪个寄存器?PC?IR?MAR?MDR?网上查了有选择A和C的解决思路

程序员可以访问哪个寄存器?PC?IR?MAR?MDR?网上查了有选择A和C的
编写汇编语言程序时,下列寄存器中程序员可访问的是(5)。
(5) A.程序计数器(PC) B.指令寄存器(OR)
C.存储器数据寄存器(MDR) D.存储器地址寄存器(MAR)

------解决方案--------------------
选A。
程序计数器,也叫IP(EIP),用来存储下一条指令的地址。可以通过call,jmp等跳转指令间接改变,可以用Move,push等读出其值,但是不可写。
指令寄存器(IR )用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到内存数据寄存器(MDR)中,然后再传送至IR。
主存与CPU之间的硬连接:主存与CPU的硬连接有三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB)。把主存看作一个黑盒子,存储器地址寄存器(MAR)和存储器数据寄存器(MDR)是主存和CPU之间的接口。MAR可以接收由程序计数器(PC)的指令地址或来自运算器的操作数的地址,以确定要访问的单元。MDR是向主存写入数据或从主存读出数据的缓冲部件。MAR和MDR从功能上看属于主存,但通常放在CPU内。
------解决方案--------------------
当然是通用寄存器了
------解决方案--------------------
楼主在考试吗???
------解决方案--------------------
执行call的时候就可以得到pc的值,call,jmp可以修改pc的值
------解决方案--------------------
探讨

引用:
选A。
程序计数器,也叫IP(EIP),用来存储下一条指令的地址。可以通过call,jmp等跳转指令间接改变,可以用Move,push等读出其值,但是不可写。
指令寄存器(IR )用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到内存数据寄存器(MDR)中,然后再传送至IR。
主存与CPU之间的硬连接:主存与CPU的硬连接有……