Не понимаю, зачем нужны такие регистры, как al, ah или даже ax. Все они связаны между собой. Если изменить значение регистра ax, то al и ah также будут изменены. Или же, если изменить eax, то соответственно будут изменены регистры ax, al, ah.
Их наверно можно было бы использовать по отдельности, если бы у них не было связанности.
Почему так сделано? Может быть доступ к «маленьким» регистрам быстрее, чем, например, к регистру rax? В чём их необходимость?
C/C++
Ассемблер. Зачем нужны связанные регистры?
Когда-то процессоры были маленькими, так что al - 8 бит и был такой регистр, так что добавили к нему еще 8 бит и стал он 16 битный, потом 32, потом еще 64 ты не сказал, про 128 помолчим
Nurlan Maratov
Интересно, зачем было оставлять старые регистры?
Не оставили, а сделали для удобства. Согласись, гораздо удобнее разбивать один большой регистр на байты и манипулировать байтами, чем использовать сдвиг в 16 или 24 раза. Эта схема настолько эффективна, что её скопировали и в SSE-1-2-3-4-5, AVX. Там тоже есть большие и маленькие половинки.
Фёдор Пичугин
Надо убрать оттуда ! вон специалист выше думает нахрен они нужны !.
Оставили только для арифметики битовой сетки. Ведь с помощью обозначений AL и AH можно получить отдельные байты из регистра AX.
Представьте себе, что в 16-битовый регистр Вы сразу можете загрузить 2 символа в однобайтовой кодировке. А с помощью AL, AH обратиться к каждому из них.
Представьте себе, что в 16-битовый регистр Вы сразу можете загрузить 2 символа в однобайтовой кодировке. А с помощью AL, AH обратиться к каждому из них.
Все регистры которые начинаются с А - это один регистр. А области выделены как раз для облегчения работы с разными размерами данных (byte, word, dword, qword)
Вот мне может кто то объяснить вот такие люди которые простые вещи спрашивают, могут ли быть программистами вообще.
Или они просто между строк читают ?.
Я сразу понял что eax ax ah al что отличаются памятью.
Или у него это нестандартное мышление просто и это ПЛЮС ахахаха.
Мне обидно будет если он выучит Ассемлблер а я нет.
На данный момент я его не выучил даже на начальном уровне ахахах.
Конечно не сужу строго, может тебе ему стало просто интересно почему и зачем эти регистры нужны.
Или они просто между строк читают ?.
Я сразу понял что eax ax ah al что отличаются памятью.
Или у него это нестандартное мышление просто и это ПЛЮС ахахаха.
Мне обидно будет если он выучит Ассемлблер а я нет.
На данный момент я его не выучил даже на начальном уровне ахахах.
Конечно не сужу строго, может тебе ему стало просто интересно почему и зачем эти регистры нужны.
Толя Копусяк
Вся суть вайтишного задрота ,который считает себя умнее всех ,в одном ответе
Они не связаны, если хочешь получить доступ к битам, конечно, если поменяешь значение еах то в остальных регистрах, перечисленных тобой значение поменяется, если будешь с ними отдельно работать то велика вероятность что это всего навсего 16 битные регистры
Похожие вопросы
- Что такое вставка на ассемблере?
- Как написать с++ на Ассемблере
- Ввести с клавиатуры символ и преобразовать его в символ верхнего регистра. Как сделать без библиотеки string?
- Чем именно обрабатываются не регистровые переменные если регистровые обрабатываются регистрами?
- Знатоки ассемблера и си, плюсов прошу помочь
- Модификация кода под язык ассемблера. Помогите, пожалуйста
- Задача на с++ связанная с расстановкой знаков
- Напишите пожалуйста код на 5 вариант очень простой я на 1 курсе вуза и нужен простой код.
- Нужна помощь с выполнением заданий в C++
- Добрый день. Нужна помощь в реализации динамических структур. Нужно написать дек с использованием malloc.