首页 > 试题广场 >

只有popq指令会同时用到寄存器文件的两个写端口。对于指令p

[问答题]
只有popq指令会同时用到寄存器文件的两个写端口。对于指令popq%rsp, E和M两个写端口会用到同一个地址,但是写入的数据不同。为了解决这个冲突,必须对两个写端口设立一个优先级,这样一来,当同一个周期内两个写端口都试图对一个寄存器进行写时,只有较高优先级端口上的写才会发生。那么要实现下面程序中popq%rsp确定的行为,哪个端口该具有较高的优先级呢?
.text
.globl poptest
poptest:
  movq %rsp,%rdi
  pushq $0xabcd
  popq %rsp
  movq %rsp,%rax
  movq %rdi,$rsp
  ret

这道题你会答吗?花几分钟告诉大家答案吧!