тестовая платформа x86-32bit
.
Я знаю, что на x86-32bit
у нас есть два кода операций movsbl
и movzbl
, которые имеют следующую семантику:
%eax = 0x12345678
%edx = 0xAAAABBBB
MOVB %dh, %al %eax = 0x123456BB
MOVSBL %dh, %eax %eax = 0xFFFFFFBB
MOVZBL %dh, %eax %eax = 0x000000BB
Приведенный выше пример взят здесь.
Тогда меня как бы смущает семантика следующей инструкции:
mov %dl, 0x2c(%esp)
Каково точное значение вышеприведенного mov
, равно ли оно movsbl
? или равно movzbl
? Или ни то, ни другое?
mem32
, этоmem8
(неявно из-за используемого 8-битного регистра). - person Jester   schedule 14.09.2015movb %dl, 0x2c(%esp)
? - person lllllllllllll   schedule 14.09.2015b
из используемого регистра. - person Jester   schedule 14.09.2015