User Tag List

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 31 по 40 из 43

Тема: x80 - RISC-ядро с интуитивной системой команд для x80-CISC

  1. #31

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Переименовал «кодовое название»…

    Дo сих пор описываемый и разрабатываемый здесь процессор не имел никакого названия.
    Если x80 формально задумывался как тот же x86, но 8-битный и с более нормальной (с моей точки зрения) таблицей команд. То в качестве возможного ядра для RISC-сердцевины CISC-оболочки x80 данный процессор получился безымянным как черновой вариант первой схемы в Logisim просто как прикол

    Однако, неделю назад всё-таки задумался о «кодовом названии», так как архитектура в целом получилась:
    1. уникальной: до сих пор не было процессора с машинным кодом «а поговорить?»
    2. самодостаточной: концептуально процессор очень гибок в самых неожиданных местах
    3. независимой: никакого copy-paste не было и любое схематическое решение я могу обосновать
    Тем самым, получилась совершенно самостоятельная ветка, которую можно развивать, усложняя систему команд (я про странные сочетания, типа «03 AE» или «03 C3»)…

    И вот неделю назад, просмотрев один фильм 1982 года, решил вдруг этому фильму представить тёску…

    P.S.: Судя по первой реакции социальных сетей, Verilog-проект всё же придётся разворачивать…

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32

    Регистрация
    05.10.2018
    Адрес
    г. Москва
    Сообщений
    172
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я сделал тему про Tang Nano и Gowin, всех интересующихся прошу туда:
    https://zx-pk.ru/threads/31889-tang-...lis-za-5).html

    Возвращаясь к теме. Верилог наше всё (конечно, продвинутые товарищи давно перешли на какой-нибудь nMigen или SystemC, но сейчас не об этом). Хотите, чтобы вас поняли почти везде - говорите на английском. Хотите, чтобы ваша архитектура работала почти везде - пишите на верилоге. Проект на верилоге я посмотрел, страшновато конечно, но на первый взгляд оптимизировать можно.

  4. #33

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb КП vs АП

    Тaк как схема процессора слишком избыточна и неправильная с позиции классического инженеринга, её практическая производительность неопределенна.

    Во-первых, у меня на выборку кода операции уходит 1 такт и 1 такт на исполнение. Это слишком мало и вероятна потеря стабильности на больших частотах. Если учитывать ещё такие трюки, когда код из памяти записывается в тот момент, когда сигнал чтения снимается, в надежде, что внутренние задержки меньше внешних и данные запомнятся прежде, чем внешняя схема успеет перейти в Z-состояние. Это - очень неправильно!
    Во-вторых, так как у i8080, судя по его структурной схеме со внутренней шиной данных, вероятно используется много буферов с третьим состоянием, что позволяет сэкономить на мультиплексорах, то переход в Z-состояние и выход из него имеет физическую задержку и не позволяет поднять частоту выше скорости захвата/отпускания внутренней шины. Этот трюк я использовал у себя как наиболее экономичный, но он показал свою худшую сторону, так как на практике одновременная активация одного буфера с деактивацией других - штука крайне нестабильная и может выйти боком с конфликтами и перегревом элементов. Что требует вводить дополнительные такты для деактивации всех буферов с последующей активацией нужного…
    В-третьих, если раннее я подсчитал порядка 250 микросхем, если исполнять схему как есть. То с применением мультиплексоров, оказывается, вместо буферов, поможет не только достичь большей производительности, но и, как это ни странно, сэкономить на элементах!

    Итак, если взять регистровый файл с применением буферов, то получится примерно следующее:
    • К155ИР13 - 30 штук
    • К531АП4 - 60 штук
    • К555ИД6 - 6 штук
    • ЛА/ЛЕ/ЛИ - 7-8 штук
    Если же использовать вариант с мультиплексорами, получается примерно так:
    • К155ИР13 - 30 штук
    • К155КП1 - 24 штуки
    • К555ИД6 - 3 штуки
    Тем самым, в текущем варианте на буферах получается порядка 100 корпусов, а в варианте с мультиксерами - всего около 60!
    Выигрыш чуть ли ни в два раза!
    То есть, я здорово оплошал!
    Вместо 250 корпусов может хватить уже меньше 200!!!

    Разумеется, сейчас идёт работа над вариантом из мультиплексоров, так как в том же Logisim производительно так же повысится из-за снижения количества отдельным симулируемых элементов…

    P.S.: Досадно, что изначально я просчитался и не занялся схемой на мультиплексорах.
    Так как без интернета почти с неделю просидел без интернета из-за карантина с интернетом, работающим в долг, за прошлый месяц забыл оплатить и неделю просидел без сети. Здорово обленился и пришлось привыкать к мышке, клавиатуре и работе мозгами…
    Из-за чего варианты под Proteus или Verilog вчера начал делать и бросил…
    Надо Logisim-версию с мультиплексорами докончить. Но жутко лень…

  5. #34

    Регистрация
    05.10.2018
    Адрес
    г. Москва
    Сообщений
    172
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати. В процессе разводки по плис все плисовые сапры оптимизируют логическую функцию, уменьшая число требуемых для схемы элементов. Естественно всё это по большей части синхронная оптимизация, заточенная на примитивы плис, но иногда на дельные мысли может натолкнуть. Рекомендую посмотреть Yosys - он не привязан ни к какому конкретному производителю (хотя может подстраиваться под нужного), и как раз такую задачу и решает - делает из обычного верилога синтезированный верилог, то есть верилог, в котором только буфера, триггеры и защёлки.

  6. #35

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Arrow Схема на мультиплексорах

    Цитата Сообщение от hitomi2500 Посмотреть сообщение
    Кстати…
    Eсли я вернее понимаю, то я - вообще ничего не смыслю в архитектурах процессоров…
    Вот, например, К531ИР24 годится для построения регистрового файла с внутренней шиной данных. Но, в моём случае, такие регистры бесполезны.

    Есть какой-то К1533ИР39 (РОН), но подробного описания его применения найти не удаётся. Более того, аналога, почему-то, не существует и производство давно прекращено. А значит, быдло скоро весь их запас скупит и переработает в серёжки!
    Хотя, если я правильно понял скуднейшее описание, как раз всю схему регистрового файла можно выполнить на шести ИР39, выбросив 30 микросхем регистров и 48 мультиплексоров! Пф-фф…
    То есть, вся схема процессора сократилась бы до полусотни корпусов!

    За АЛУ симпатичнее подобие ИК2, чем запутанные и сложные ИК4 или ИП3
    Преобразовывать BCD можно с ПР6.

    Тем самым, по прикидкам, весь процессор мог бы получиться вполне простым в реализации дискретными микросхемами отечественного образца, но без ущерба концепции: Интуитивно-ясный машинный код…

    P.S.: Сейчас перерисовываю схему, разбив всё на модули…
    Однако, напрашивается ещё один модуль программного управления, так как FETCH получился слишком запутанным и я не могу сам разобраться в самой логике!
    (Verilog отдыхает, так как делаю один полутакт и прокручиваю всю схему минутами, вникая в ситуацию и добавляя новые элементы! Уже говорил, что всю логику процессора построил правым полушарием мозга, а не левым: Не знаю, как в Verilog формулизировать её буду…)
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	x80_RISC_NewDraft.jpg 
Просмотров:	52 
Размер:	22.0 Кб 
ID:	72841  
    Последний раз редактировалось Радио-86РК; 12.06.2020 в 16:49.

  7. #36

    Регистрация
    05.10.2018
    Адрес
    г. Москва
    Сообщений
    172
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    33
    Поблагодарили
    10 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Verilog лишь описывает логику. Потом эту логику сборщик разложит на базовые кирпичики, а потом эту кучу кирпичей надо будет после оптимизации собрать в корпуса. А в качестве корпусов там всякие плисовые LUT6 и DSP48. Вот если бы можно было как-то заставить сборщик вместо плисовых примитивов использовать например серию К1533, да ещё и выбирать какие корпуса можно, а какие нельзя, тогда можно было бы схему любой сложности из текста на verilog-е собрать, причём в минимальном числе корпусов. Я к сожалению мало знаю о том, как устроены все эти сборщики изнутри, но могу поспрашивать у опенсорсников насколько это вообще реально.

  8. #37

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Logisim vs Proteus

    Цитата Сообщение от hitomi2500 Посмотреть сообщение
    Verilog лишь описывает логику.
    Этo и видно по выхлопу с Icarus Verilog, где можно, при желании, самому переварить файл и организовать симуляцию.

    Вчера переносил схему декодера команд с Logisim на Proteus и жутко устал:
    • Logisim: Чтобы удалить провод, достаточно его прорисовать повторно - принцип XOR
    • Proteus: Удаление провода - целая история с правыми кликами или клавишами клавиатуры
    • Logisim: Чтобы заменить один элемент другим, достаточно удалить и поставить новый
    • Proteus: Удаление элемента удаляет также и все проводники, подключённые к нему. А автоматическая замена элементов ведёт себя не так, как ожидается
    • Logisim: Перенос провода переносит и точки соединения тоже
    • Proteus: Провод перемещаешь, а узлы пайки остаются на месте и нужно много шаманить кликами
    • Logisim: В любой момент состояние триггера, регистра или счётчика можно изменять как хочешь
    • Proteus: Любое изменение в схеме требует прервать симуляцию и элементы памяти сбрасываются, а изменить статус триггера или счётчика никак нельзя
    В общем, в Logisim схему легче прорабатывать в режиме «как попало» и не прерывая симуляции можно добавлять элементы и провода. Тогда как Proteus - для профессионалов, чётко знающих свой план.
    (Как Бейсик против Паскаля!)

    Схему нарисовал и запустил - получил ругань на элемент 7485: Оказывается, имеется графическая модель, но отсутствует симуляторная.
    Пришлось выискивать среди 74LS86 и минут десять заменять с пляской над проводами (автозамена странно выполняется).
    А после прокрутки счётчика оказалось, что я ошибочно влепил 7433 вместо 7402: Снова плясал с заменой и изуродовал схему из-за длинных выводов в графике 7402…
    (Про графическое редактирование знаю, но возиться лень было…)

    В Logisim схема декодера команд выглядит компактнее и красивее, чем та же в Proteus…
    (Нужно будет попыхтеть над УГО…)

    P.S.: По-любому, прорабатывать схему процессора прямо в Proteus лично я не смогу…
    Буду тупо переносить с Logisim готовые узлы…
    P.P.S.: Перерисовал Logisim-схему. Активный выходной уровень - низкий, что уже гарантирует некоторую устойчивой к помехам. Чтобы ввести разрешающий вход EN, пришлось здорово повозиться с запретом элементов. Сложность была в том, что схема не имеет одного главного вентиля и запрещать требовалось множество элементов. К тому же, ещё не выходить за рамки: 4-И-НЕ уже не годится из-за расхода корпусов. Оптимизировал комбинаторику и схема, приобретя реакцию на EN, сократилась на один корпус, что приятно удивило!
    Затем перерисовал своими УГО Proteus-схему заново и справа-налево: От выходных 3-И-НЕ элементов до ключевой комбинаторики, чтобы как можно больше корпусов подключались короткими дорожками без петель и переходов.
    В итоге, судя по топологии генерируемой разводки платы 50×70 переходных отверстий не так много и большинство дорожек - прямые…
    Очень сильно устал…
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	my_risc_decoder.jpg 
Просмотров:	46 
Размер:	26.2 Кб 
ID:	72896   Нажмите на изображение для увеличения. 

Название:	my_risc_decoder.jpg 
Просмотров:	54 
Размер:	25.3 Кб 
ID:	72897  
    Вложения Вложения
    Последний раз редактировалось Радио-86РК; 16.06.2020 в 10:29.

  9. #38

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Счётчик Машинных Циклов

    Зa прошедший период не удалось добиться существенного.
    Однако, следуя морали известной басни, не стал поддаваться современным трендам с тенденциями и полностью изменил подход к построению архитектуры…

    Сейчас прорабатываю новый вариант многотактового процессора с кучей машинных циклов.
    Регистровый Файл из отдельного запутанного модуля двухпортовой памяти перенёс прямо в ОЗУ, следуя традициям MOS 6502…
    Тем самым, на исполнение одной команды может потребоваться от 1 до 11 тактов, так как Счётчик Машинных Циклов строго управляет всем архитектурным состоянием на весь период исполнения команды.
    • Фаза M0: Чтение PSW
    • Фаза M1: Чтение Аккумулятора
    • Фаза М2: Чтение регистра второго операнда
    • Фаза M3: Чтение регистра-Счётчика
    • Фаза M4: Чтение указателя Базы буфера
    • Фаза M5: Чтение ячейки ОЗУ
    • Фаза M6: Запись Аккумулятора
    • Фаза M7: Запись Счётчика
    • Фаза M8: Запись Базы
    • Фаза M9: Запись PSW или данных в ОЗУ
    Нажмите на изображение для увеличения. 

Название:	MachineCounter.jpg 
Просмотров:	60 
Размер:	22.1 Кб 
ID:	74435
    Как видно, в отличии от i8080/z80 с наличием Цикла M1, здесь циклы могут начинаться с M0, однако он не привязан к чтению кода команды из памяти, так как все 10 циклов M0…M9 управляют именно исполнением текущей инструкции, а не её выборкой.
    Так, команда «ADD A1,[B5C5+D7+9]» развернётся в следующую последовательность циклов:
    • M0: Чтение PSW - ячейка [0xA0]
    • M1: Чтение D7 - ячейка [0xD7]
    • M2: Чтение A1 - ячейка [0xA1]
    • M3: Чтение C5 - ячейка [0xC5]
    • M4: Чтение B5 - ячейка [0xB5]
    • M5: Чтение ОЗУ - ячейка [B5C5+D7+9]
    • M6: Запись A1 - ячейка [0xA1]
    • M9: Запись PSW - ячейка [0xA0]
    Здесь видно, что на всю операцию затрачивается 8 тактов + ещё два: Выборка константы «9» и выборка команды «ADD», что происходит вне этих циклов.
    (Здесь «M9» управляет записью либо PSW, либо произвольной ячейки ОЗУ, так как не предусматриваются команды АЛУ над ячейками памяти в открытой форме.)

    P.S.: До сих пор имелись значительные сложности без наличия Счётчика Циклов.
    Тогда как теперь всё можно достаточно слаженно расписать по тактам…

  10. #39

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Эмулятор

    Зa весь этот период много всего переделано по теме.
    А именно:
    • Нарисовал много разных схем в Logisim
    • Написал несколько вариантов на Verilog
    • Прогнал всё в среде Quartus/ModelSim
    • Написал эмулятор…
    Собственно, представляю вашему вниманию эмулятор данного в теме процессора для РАДИО-86РК.
    В архиве RISC-Emu.zip имеется два файла, где «emulator.rkr» собственно само ядро эмуляции размером в 272 байта, загружаемое в область 0x5B00…0x5C0F, чтобы можно было и на ZX-Spectrum'е запустить, предварительно заменив все jp'ы на jr'ы для компактности. Ядро полностью выполняет весь байт-код.
    Также в архиве имеется второй файл «emulater.rkr», который представляет собой микросреду для эмуляции.

    Напомню, что суть процессора в том, что как байт-код кодируется, то он и обозначает. Своего рода WYSIWYG-машинный код.
    Как и виртуальная Java-машина, здесь байт-код тоже выполняется виртуально процессором i8080/z80. А также, напомню, выполняется на уровне Verilog, что позволяет на уровне ПЛИС/FPGA реализовать самый настоящий процессор.
    Или же перепрошить ПЗУ АОНа на z80 для эмуляции данного процессора.

    Так, байты A0…A9/B0…B9/C0…C9/D0…D9 активируют одноимённые РОН. Как можно догадаться, всего РОН 40. Причём, A0 - это PSW, а D0…D9 - внешние УВВ.
    Байты AA…AD/BA…BD/CA…CD/DA…DD группируют регистры в операнды для АЛУ.
    Например, код «A2 AB 3E» воспринимается как «A2 A,B3 Eor» и работает как «EOR A2,B3».
    Тем самым, никакую таблицу команд заучивать и зубрить не надо. Только чуточку нужно приобрести навык и можно спокойно кодировать алгоритм.

    Так как D0…D9 выполняют функцию УВВ, временно в «emulater.rkr» создана такая среда:
    • D0: Чтение - код символа под курсором / Запись - печать ASCII-символа
    • D1: Чтение - проверка клавиатуры / Запись - печать HEX-байта
    • D2: Чтение - ожидание ввода с клавиатуры / Запись - BEEP-тональность
    • D3: Чтение - опрос клавиатуры без ожидания / Запись - BEEP-длительность
    • D4: Чтение - Позиция курсора по X
    • D5: Чтение - Позиция курсора по Y
    • D9 - Должен работать как переключатель страниц УВВ. То есть, если 0x00 - функционал выше, то 0x57 - функционал i8257 с управлением через D0…D8. А 0x53 - функционал i8253. Проще говоря, здесь хранится код выбранного УВВ
    То есть, «PRINT CHR$(USR(-2045))» это «LET D0 = D2», которое мнемонически представляется как «MOV D0,D2» и кодируется кодом «D0 DD 2F».
    Verilog-модель выполняет эту команду примерно за 33 такта.

    Примеры:
    Код:
    0100 A1         |REG A1            ; Выбор A1 в качестве аккумулятора
    0101    AB      |ARG A,B           ; Операнд-аккумулятор A и операнд-источник B
    0102          2D|OR  A1,B2         ; Здесь «2» определяет индекс операнда-источника, а «D» означает «Disjunct»
    0103          3D|OR  A1,B3         ; Здесь «3» определяет индекс операнда-источника
    0104       65 4D|OR  A1,[BC6+5+B4] ; Префикс «65» выбирает регистровую пару B6 и C6 как указатель памяти со смещением
    0106 A7         |REG A7            ; Меняем аккумулятор на A7
    0107       65 4D|OR  A7,[BC6+5+B4] ; Та же операция, но результат помещается в A7
    0109    AC      |ARG A,C           ; Операнд-аккумулятор A и операнд-источник C
    010A       65 4D|OR  A7,[BC6+5+C4] ; Такая же операция, но смещение берётся из C4
    010C          5E|EOR A7,C5         ; Инструкция XOR
    010D          5F|FOR A7,C5         ; Инструкция MOV
    010E          5A|ADD A7,C5         ; Сложение
    010F          5B|SUB A7,C5         ; Вычитание
    0110       65 D6|MOV [BC6+5],D6    ; Запись из регистра УВВ в память
    0112       65 CF|JCF [BC6+5]       ; Если !CF, то прыжок на адрес из пары B6 и C6 со смещением 5
    0114       65 43|JMP 0x4365        ; Два префикса в подряд - переход (в B0 и C0 сохранится адрес 0x0115)
    0116          F1|JMP 0xF100        ; Переход на начало Функции #1 (в B0 и C0 сохранится адрес 0x0116)
    0117       23 F1|JMP 0xF123        ; Переход внутрь Функции #1 (в B0 и C0 сохранится адрес 0x0118)
    0119       21 00|JMP 0x0021        ; Переход в начальный параграф памяти (в B0 и C0 сохранится адрес 0x011A)
    011B          00|HLT               ; Останов: Переход на 0000, как RST 0 (в B0 и C0 сохранится адрес 0x011B)
    Как можно видеть, ничего сверхъестественного нет. Именно поэтому подобную систему команд можно легко выполнять и эмулятором, и в Verilog, и в Logisim, что близко по уровню к ТТЛ.

    А главное - никакого BrainF*ck'а! Никакой эзотерики!
    Машинный код прост и очевиден, если есть хоть малое желание вникнуть!

    А так как запустить Java-игру на i8080 почти нереально, то с данным кодом можно, напротив, и в ТТЛ баловаться, и на РАДИО-86РК, и в браузере JavaScript-эмулятором.
    Короче, кроссплатформенность обеспечивается.

    P.S.: Как понятно, переключатель УВВ через D9 мною не реализован в файле «emulater.rkr», так как на данном этапе это не требуется.
    Последний раз редактировалось Радио-86РК; 20.02.2021 в 03:05.

  11. #40

    Регистрация
    05.03.2010
    Адрес
    Ташкент
    Сообщений
    160
    Спасибо Благодарностей отдано 
    25
    Спасибо Благодарностей получено 
    66
    Поблагодарили
    41 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Post Эмулятор моего виртуального процессора

    Эмулятор
    Написал и более-менее отладил эмулятор (Emulator.zip):
    • 3700…37C6: Оболочка («РАДИО-86РК¹» / «СПЕЦИАЛИСТ²» / «ОРИОН-128³»)
    • 3838…3863: Сам псевдо-код для эмулятора
    • 3870…38FF: Поддержка совместимости между разными ПК (¹-²-³ и ZX-Spectrum 48Kb) для печати символа и ввода с клавиатуры
    • 3900…3A99: Собственно, код самой эмуляции (поддерживаются практически все инструкции)
    • 3ADA…3C7F: Дизассемблер (декодирует практически все команды)
    • 3C80…3CFF: Заглушка портов УВВ (вывод сообщений о попытках доступа к портам)
    Оболочка в первую очередь разрабатывалась под РАДИО-86РК, где и отлаживалось всё.
    Адрес эмулятора 3870…3CFF выбран не случайно, так как ZX-Spectrum 48 Kb в ROM#2 по этим адресам имеются FF.
    То есть, всё разрабатывалось, чтобы код прошить прямо в ПЗУ и не требовалось что-либо грузить с ленты.

    Итого
    Таким образом, свою идею персонального процессора я реализовал:
    • Рабочим эскизом в Logisim
    • Эмулятором на JavaScript
    • Моделью на Verilog с перспективой реализации в ПЛИС/FPGA
    • Эмулятором под процессор i8080/z80
    В ходе разработки данного эмулятора решил некоторые концептуальные проблемы и белые пятна архитектуры: Теперь нужно доработать эскизы Logisim/Verilog.
    • Инструкция ARG D,D теперь запрещена и работает как DBG. Тем самым, из-за её упразднения уже никак нельзя выполнить инструкцию, типа «MOV D1,D2» (непосредственная пересылка из порта #2 в порт #1), так как появилась инструкция DBG
    • Инструкции JNS/JPO/JNC/JNZ упразднены и на их месте теперь CMS/CMO/CMC/CMZ - инверсия соответствующих флажков. Теперь «JNC» - это «CMC+JC»
    • Наконец-то в адресации появился авто инкремент/декремент для организации стека: Так как в качестве индексного регистра неразумно указывать регистр порта УВВ, теперь в рамках индексной адресации они и работают в качестве счётчиков (считает только D₉, остальные D₀…₈ лишь определяют направление счёта и смещение)
    • Некоторые комбинации так и не определены. Условно они обозначаются как инструкции EXA/EXB/EXC/EXD/EXE

    Теперь предстоит данный код эмулятора/дизассемблера вписать в ZX-ROM и аккуратненько прогнать в EmuZWin…

Страница 4 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ядро с 32 битами и виртуализацией
    от Bolt в разделе Несортированное железо
    Ответов: 132
    Последнее: 30.12.2021, 17:50
  2. x80: CISC - уже не i8080, ещё не i8086
    от Радио-86РК в разделе Разное
    Ответов: 41
    Последнее: 18.05.2020, 21:41
  3. RISC OS
    от Кирлиан в разделе Зарубежные компьютеры
    Ответов: 7
    Последнее: 07.08.2012, 01:28
  4. Ответов: 16
    Последнее: 02.08.2005, 12:20

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •