Регистров (без сопроцессора и системных), по сути, 6 групп и они специализированы, то есть созданы для вполне конкретных целей. Да, их можно использовать для хранения других данных, иногда прочей обработки, но это не отменяет их специализации. Арифметические регистры: (r/e)ax, (r/e)bx, (r/e)cx. (r/e)dx. Указатели: (r/e)ip. (r/e)sp. (r/e)bp Сегментные регистры: cs,ds,ss,es,fs,gs Индексные регистры: (r/e)si (r/e)di Регистр флагов; (r/e)flags Временного хранения; r8-r15
Это уже давно не актуально
И если уж на то пошло, bx тоже указатель
согласен, bx - Это регистр базы
Просто корни этой фигни ещё во временах 8086, там косвенную адресацию можно было осуществить только через 4 регистра: bx, bp, si и di. cx вообще был в качестве счётчика
да, тогда это было сделать проще через спец. регистры, отдав место для более навороченных декодеров. в мотороле примерно так же было сделано, как и в других cisc.
А сейчас регистров хоть жопой жуй (смысле их там намного больше 16) и они постоянно переназначаются
это уже подмена регистровых файлов (как в свое время на z80) для быстрой смены контекста и прочие извраты. на этом же и HT реализован. однако универсальность регистрам не сделать, не изменив систему команд
На z80 у тебя менялись сразу все регистры и явно, на современных переназначение для каждого регистра независимо и если назначения нет то и значения ты не увидишь
а, речь про внеочередное выполнение команд.. .это в общем и убило идеи risk. когда у нас мало того ,что сами команды могут выполняться в произвольной последовательности в соответствии с зависимостью данных и загруженностью исполнительных устройств, так еще и загрузка/выгрузка данных от обработки отделяется автоматически.
Что в произвольной последовательности, я сомневаюсь, а вот то что команды могут начать выполнение не дожидаясь завершения предыдущей это да
Это и есть "произвольная", то есть отличающаяся от той. которая задана в коде. Иными словами, если декодированы десяток команд, и часть может быть выполнена сейчас, не дожидаюсь, пока отработают предыдущие, потому что все данные уже есть - то это обработка добавляется в очередь исполнения.... То же самое и с загрузкой/выгрузкой данных.
Я это вижу как нельзя менять местами, впрочем может процессоры и местами менять умеют, но это довольно нетривиально
не не на Z80 две команды EX меняет Aккумулятор и Флаги EXX меняет BC, DE ,HL
ну даже так, это всё равно не то о чём я говорил
Обсуждают сегодня