На языке ассемблера x86 есть ли способ получить верхнюю половину регистра EAX
? Я знаю, что регистр AX
уже содержит нижнюю половину регистра EAX
, но я пока не знаю, как получить верхнюю половину.Получить верхнюю половину регистра EAX
Я знаю, что mov bx, ax
сдвинет нижнюю половину eax
в bx
, но я хочу знать, как переместить верхнюю половину eax
в bx
, а также.
Просто сдвиньте его на 16 бит. – Mysticial
Либо сделайте 'shr eax, 16', за которым следует переход. (который уничтожает 'eax'), или' mov ebx, eax' и 'shr ebx, 16' (который нули в верхней половине' ebx'), я не уверен, что если операции на 'bx' будут автоматически обнулять верхняя половина «ebx» в любом случае. Так что, если это так, вы могли бы пойти с последним методом. – Mysticial
'ror eax, 16'' mov bx, ax'' ror eax, 16', если вы хотите оставить eax/верхняя часть ebx нетронутой – user786653