Мое понимание регистров x86 говорит о том, что к каждому регистру может обращаться весь 32-битный код, и он разбит на несколько доступных регистров.
В этом примере EAX
является 32-битным регистром, если мы вызываем AX
, он должен вернуть первые 16 битов, а если мы вызываем AH
или AL
, он должен возвращать следующие 8 битов после 16 битов и AL
должен вернуть последние 8 бит.
Так что мой вопрос, потому что я не совсем верю, это то, как это работает. Если мы сохраним 32-битное значение, также известное как EAX
:
0000 0100 0000 1000 0110 0000 0000 0111
Так что, если мы получим доступ к AX
, он должен вернуть
0000 0100 0000 1000
если мы прочитаем AH
, он должен вернуть
0000 0100
и когда мы читаем AL
, он должен вернуть
0000 0111
Это правильно? и если это то, какое значение действительно имеет AH
?