C/C++

Ассемблер. Зачем нужны связанные регистры?

Не понимаю, зачем нужны такие регистры, как al, ah или даже ax. Все они связаны между собой. Если изменить значение регистра ax, то al и ah также будут изменены. Или же, если изменить eax, то соответственно будут изменены регистры ax, al, ah.

Их наверно можно было бы использовать по отдельности, если бы у них не было связанности.

Почему так сделано? Может быть доступ к «маленьким» регистрам быстрее, чем, например, к регистру rax? В чём их необходимость?
NM
Nurlan Maratov
1 675
Когда-то процессоры были маленькими, так что al - 8 бит и был такой регистр, так что добавили к нему еще 8 бит и стал он 16 битный, потом 32, потом еще 64 ты не сказал, про 128 помолчим
Янибек Салемиев
Янибек Салемиев
98 472
Лучший ответ
Nurlan Maratov Интересно, зачем было оставлять старые регистры?
Не оставили, а сделали для удобства. Согласись, гораздо удобнее разбивать один большой регистр на байты и манипулировать байтами, чем использовать сдвиг в 16 или 24 раза. Эта схема настолько эффективна, что её скопировали и в SSE-1-2-3-4-5, AVX. Там тоже есть большие и маленькие половинки.
Фёдор Пичугин Надо убрать оттуда ! вон специалист выше думает нахрен они нужны !.
Оставили только для арифметики битовой сетки. Ведь с помощью обозначений AL и AH можно получить отдельные байты из регистра AX.

Представьте себе, что в 16-битовый регистр Вы сразу можете загрузить 2 символа в однобайтовой кодировке. А с помощью AL, AH обратиться к каждому из них.
Юрий Клименко
Юрий Клименко
16 172
Все регистры которые начинаются с А - это один регистр. А области выделены как раз для облегчения работы с разными размерами данных (byte, word, dword, qword)
Вот мне может кто то объяснить вот такие люди которые простые вещи спрашивают, могут ли быть программистами вообще.

Или они просто между строк читают ?.
Я сразу понял что eax ax ah al что отличаются памятью.

Или у него это нестандартное мышление просто и это ПЛЮС ахахаха.

Мне обидно будет если он выучит Ассемлблер а я нет.
На данный момент я его не выучил даже на начальном уровне ахахах.

Конечно не сужу строго, может тебе ему стало просто интересно почему и зачем эти регистры нужны.
Толя Копусяк Вся суть вайтишного задрота ,который считает себя умнее всех ,в одном ответе
Они не связаны, если хочешь получить доступ к битам, конечно, если поменяешь значение еах то в остальных регистрах, перечисленных тобой значение поменяется, если будешь с ними отдельно работать то велика вероятность что это всего навсего 16 битные регистры