Эмулятор Своего 8 битного процессора на С++ и ассемблер в придачу.
Придумал систему команд, а для команд нужен исполнитель. Собственно, его и делаю.
Основная идея: Разработать минемалистичный процессор, с точки зрения элементов и сложности. В идеале - когда-нибудь, может быть, воплотить в железе.
Текущий вариант чисто 8битный, регистры, адресное пространство. Соответственно, чтобы был хоть какой-то смысл его нужно сделать хотябы 8битным, ибо в 256 байт особо ничего не запрограммируешь.
Варианта решить 2
План - А) уместить в 256 байт программу-микрокод, котрая будет эмулировать процессор, но в 16разрядном виде.
Сделает процессор практически применимым
Не увеличит сложность реализации
- просадка в производительности
- попробуй-ка запихни это 256 байт
План-Б) Если не выйдет раширить архитектуру до 16 бит в “железном“ виде.
100% вариант
В эмуляторном виде почти бесплатно
Нет просадки по производительности
- Увеличит сложность\стоимость производства в железе в возможном будущем.
На данный момент есть рабочий ассемблер и рабочий эмулятор, в какой-то степени.
Спецификация, если можно это так назвать:
/*
* memory bytes
* registers:ra,rb,rc
* opcodes:
* [id203992|*one] line - one opcode
* oppcodes without argument size is 8bits,
* with argument 8bit registerSize bits
*
* hlt - stops programm(end)
* 8bits
*
* swp - swap ra with rb
* 8bits
*
* ld - loads byte from memory by addres from current value in ra, and
* writes byte value in to ra
* 8bits
*
* rast - sets to ra a value
* 8bits register_size
*
* pt - write from ra to mem
* 8bits registerSize
* ptrb - wirtes from ra by adr in rb
* 8bits
*
* sum -
* summ ra rb and writes result to ra,
* writes to rc(caryout) - 1 if owerflowed or 0 else.
* 8bits
*
* cmp - compares ra and rb. Writes result to ra
* 0x00 - equals
* 0xff - else
* 8bits
*
* jmp - jump to adress in ra. if adr == 0 then nop
* 8bits
*
* and - binary ra & rb -> ra
* 8bits
*
* or - binary ra | rb -> ra
* 8bits
*
* not - binary inversion rb -> ra
* 8bits
* * one bit shfts
* * from ra to ra
* * new bits is 0
* rsh - binary right shift
* 8bits
* lsh - binary left shift
* 8bits
*
* cout - loads value from caryout(rc) to ra.
* Value caryout(rc) register is not change.
* 8bits
* nop - no operation
* 8bits
* —----------------------------------------------------------------
* programm struct
* : - label
*
* .data - palces after end of programm.
* Partition for constants and variables
*
* : - refs to adress with value
*
* exam.
* :my_var
* 42
*
* : - refs to adress with first byte of value
* {string value} - 0 terminated, byte sequence(C-str)
* String expands to 0-terminated byte sequnce
*/
/* compilation.
* command max len 16bits. 8bits - oppcode
* 8bits arg for ld\pt oppcode ex. ld
* For values look at enum class OppCodes : std::uint8_t
*/
59 views
4366
1523
1 month ago 01:35:01 1
Кто лучше в играх AyaNeo Next Lite vs Asus Rog Ally (z1) Ragnarok/Tsushima/Witcher/Zelda/Uncharted 2
1 month ago 01:41:37 33
Эмулятор Своего 8 битного процессора на С++ и ассемблер в придачу.
1 month ago 00:07:43 2
Android TV в 2020. ЧТО МЫ ПРОПУСТИЛИ?
1 month ago 00:20:01 3
БОЛЬШОЙ ОБЗОР STEAM DECK: Что мы узнали?
1 month ago 00:11:21 4
file:///storage/emulated/0/Movies/Telegram/
1 month ago 00:47:58 1
Как играть по сети на Nestopia через Kaillera
1 month ago 00:05:37 1
Nintendo закрыла ещё один эмулятор, свежий трейлер Secret Level, оценки Silent Hill 2...
1 month ago 00:05:13 1
эмуль рюикс все
1 month ago 00:12:38 1
Bloodborne. Запуск на эмуляторе shadPS4.
1 month ago 04:14:49 3
Азбука безвкусия #246 | Одинокие волки, Кот-призрак Андзу и Наклз
1 month ago 00:00:00 1
Страдаю проходя The Darkness на эмуляторе PlayStation 3 без геймпада, слава Дневному дозору! Стрим.
1 month ago 01:22:31 765
№ 144 • У Ubisoft все плохо • Nintendo закрыла эмулятор Ryujinx • Golden Joystick Awards
2 months ago 00:18:27 4
Valve & Arch partnership, Nintendo kills emulator, Thunderbird for Android Linux & Open Source News
2 months ago 00:08:39 475
ЛУЧШИЙ БЕСПЛТАНЫЙ СКРИПТ В СТАНДОФФ 2 | ВЕРСИЯ
2 months ago 00:06:04 4
🤩 ЧИПТЮН в кармане - LSDJ Revolution on Your iPhone!
2 months ago 00:27:14 10
ГТА 4 миссия Номер один. Русская озвучка. Детали
2 months ago 00:10:49 3
ЛУЧШИЙ ЭМУЛЯТОР токарного станка с ЧПУ!
2 months ago 00:08:10 5
Точки отсчета координат станков с ЧПУ ⚡ Ноль детали. Ноль инструмента. Ноль станка
2 months ago 00:05:42 6
КРУТОЙ ЭМУЛЯТОР фрезерного станка с ЧПУ. ОБУЧАЙСЯ самостоятельно!
2 months ago 00:12:07 14
file:///storage/emulated/0/Movies/Telegram/
2 months ago 00:09:38 19
Стерео педалборд (Stereo pedalboard)
2 months ago 00:00:22 3
🔥 Забирай 75 000 руб прямо сейчас с промокодом FORTUNA24