Мое понимание регистров 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?