单选题 下列寄存器中,对汇编语言程序员不透明的是______。
  • A.存储器地址寄存器(MAR)
  • B.程序计数器(PC)
  • C.存储器数据寄存器(MDR)
  • D.指令寄存器(IR)
【正确答案】 B
【答案解析】[解析] 用户可见寄存器,指用户程序中的指令可直接访问或间接修改其值的寄存器,包括通用寄存器、地址寄存器和程序计数器(PC)。 用户部分可见寄存器,指用户程序中的指令只能读取部分信息的寄存器,如程序状态字寄存器(PSWR)或标志寄存器(FLAG),其内容由CPU根据指令执行结果自动设定,用户程序执行过程中可能会隐含读出其部分内容,以确定程序的执行顺序,但不能修改这些寄存器的内容。 用户不可见寄存器,指用户程序不能进行任何访问的寄存器。这些寄存器大多用于记录控制信息和状态信息,只能由CPU硬件或操作系统内核程序访问,例如,指令寄存器IR用来存放正在执行的指令,只能被硬件访问;存储器地址寄存器(MAR)和存储器数据寄存器(MDR)分别用来存放将要访问的存储单元的地址和数据,也由硬件直接访问;中断请求寄存器、进程控制块指针、页表基址寄存器等只能由内核程序访问,因此也都是用户不可见寄存器。