assembly RAX在一个8位DIV指令后会有什么值,指令设置AL/AH和CL?

wz1wpwve  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(116)

正确答案是什么?我在考试中有个问题...:/
x86-64架构:

  1. //What value will the register RAX have after
  2. //executing the following sequence of instructions?
  3. mov al, -5
  4. xor ah, ah
  5. mov cl, 5
  6. div cl
  7. //a) -1
  8. //b) 255
  9. //c) 50
  10. //d) 0
  11. //e) 1
  12. //f) -50

我在Visual Studio中使用UASM编译了代码,除法后AX的值为132 h

oprakyz7

oprakyz71#

正确答案是:你看不出来因为代码只改变低16位,所以前48位是在块之前的,没有指定。
请注意,div是无符号的,因此您需要将-5转换为无符号的251。除以5得到结果50,余数1(正如您自己确定的那样,这将在AX中得到132h,因为余数进入AH,商进入AL)。由于这不是提供的选项之一,我们必须假设他们真的想要AL的值而不是RAX,所以我会选择50

相关问题