首页 > 解决方案 > 汇编 movsbq 指令

问题描述

movz我理解和之间的区别movsmovz用零填充空字节,同时movs用符号位(零或一)填充它们。

但是,我遇到了以下示例

  1. movabsq $0x0011223344556677, %rax
  2. movb $0xAA, %dl
  3. movb %dl, %al
  4. movsbq %dl, %rax

在第 3 行之后,%rax = 00112233445566AA. 直到这我才明白。但是我不明白为什么 %rax 在第 4 行之后等于。 FFFFFFFFFFFFFFAA不应该是00000000000000AA因为 %dl 是正数,所以空位填充为零吗?

标签: assemblyx86-64twos-complementsign-extension

解决方案


推荐阅读