2016-09-28 35 views
0

我無法理解「左移算術移位」。我有以下指令:~~彙編語言左移確認

SAL $0x2, edx 

edx = 0xFC

0xFC = 1111 1100 

通過左移2,我們應該有:

1111 0000 = 0xF0 

正確?

+1

是,可能與溢出標誌集。 –

+1

恩,'edx'是一個32位寄存器,而不是一個8位寄存器。 –

+0

是的,但十六進制值仍然正確,是嗎? – Sanya

回答

1

由於edx是一個32位寄存器,和edx = 0xFC(相當於edx = 11111100b),算術左移將導致1111110000b,換句話說,edx = 0x3F0