Войти
ФлеймФорумЖелезо

Блеск и нищета 8/16-битных консолей и ПК (118 стр)

Страницы: 1117 118 119 120125 Следующая »
#1755
9:03, 21 июня 2022

Dmitry_Milk
> Я не успел выучить.
Для меня настоящим откровением стала вот эта страница, благодаря листингу на которой я, словно по щелчку пальца, вдруг осознал, как сочетаются все эти выражения в мнемониках
С того момента всё пошло-поехало! Я научился дампы читать и кодировать своё.

> потом уже все писал исключительно на асме
С теми моими 16 Кб памяти ассемблер был роскошным расточительством!
Легче было прямо в дампе всё кодировать в DumpCor, в котором я висел сутками…

#1756
12:10, 23 июня 2022

Dmitry_Milk
> К тому же в синтаксисе i8080 в отличие от синтаксиса z80 это более явно
> проявляется, т.к. отдельная мнемоника MOV для пересылки регистр-регистр (считая
> M тоже как "регистр"), отдельная мнемоника MVI для загрузки непосредственного
> значения в регистр (в том числе в M). В том числе отличающиеся мнемоники для
> операций с регистровыми парами, например, инкремент регистра или M - это INR, а
> инкремент регистровой пары - INX, загрузка непосредственного значения в
> регистровую пару - LXI, загрузка аккумулятора из ячеки по адресу регистровой
> пары - LDAX и т.п.  А не одна LD на все про все.
Попробoвал взять себя на слабо и отвлечься на классику жанра - написать парсер ассемблерных инструкций, как в #171:

Вот так кратко шаблоном описываются все инструкции!
(Это не ассемблер, так как не обрабатываются метки и всё такое, так как с метками работать сложнее (пруф.)

#1757
9:52, 29 июня 2022

Не всё меряется битами...

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#1758
(Правка: 2:21) 1:30, 30 июня 2022

Inmos Transputer CPU (1986г)

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Продолжатели идей Xmos.
Что такое серия XMOS?

https://wiki5.ru/wiki/XMOS

https://kpfu.ru/portal/docs/F1460873234/Mironov.A.O..pdf

#1759
9:08, 30 июня 2022

KPG

Чипы могут заменить FPGA и DSP во многих приложениях, при этом разработка происходит намного быстрее и дешевле.

Я бы начал с XC1-A за 99 долларов. Здесь есть все, что вам нужно, включая множество светодиодов и кнопок, а также интерфейсные разъемы.

Напрягают форумы без указания дат сообщений, очень трудно оценить актуальность информации.  Насчёт замены и дешевизны...

https://aliexpress.ru/item/1005004280300033.html?sku_id=12000028611214019

#1760
9:28, 30 июня 2022

0iStalker
> Напрягают форумы без указания дат сообщений, очень трудно оценить актуальность
> информации

Так это не форум, это переводчик, надергавший инфу из других форумов. Судя по тому, что на исходном ресурсе пишет "Page not found", информация уже давно устарела.

Я про транспьютеры читал еще на рубеже 80-90х, им тогда пророчили светлое будущее (ИИ и прочее).

#1761
0:50, 1 июля 2022

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#1762
8:32, 1 июля 2022

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#1763
8:45, 1 июля 2022

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#1764
11:21, 1 июля 2022

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#1765
9:46, 2 июля 2022

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#1766
2:50, 13 июля 2022

https://hackaday.io/project/185131-the-hack-computer-from-nand2te… oards/details

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#1767
7:26, 13 июля 2022

master-sheff, пример как делать не надо?

#1768
(Правка: 16:08) 16:00, 13 июля 2022

master-sheff

Забавно тоже.
nand2tetris это популярный (если верить его авторам) курс по созданию этой самой Hack-машины и ПО для неё с нуля преподаваемый в разных институтах по миру.

Архитектура процессора тут следующая.
Он 16-битный, при этом 16-битны и ячейки памяти (привет от Simpleton4!), но адресное пространство составляет 15 бит, т.е. 64Кб из 32768 16-разрядных слов.
Однако адресные пространства для кода и для данных разные (гарвардская архитектура), при этом они оба по 64Кб, т.е. суммарно машина без дополнительной обвязки может иметь 64Кб ROM код + 64Кб RAM данных. В пространство кода нельзя писать не только потому что это ROM но и потому что нет просто таких инструкций. Из кода можно только извлекать инструкции.
Регистров которые прямо или косвенно доступны программисту всего три - D (данные), A (адрес) и счётчик инструкций. Первые два 16-битные, последний навереное 15-битный.
Инструкции в ROM кода всегда 16-битные (1 ячейка памяти = 1 инструкция).
Система команд как и в Gigatron крайне минималистичная. Есть всего два формата команд.
Формат А-команды: 0ddddddd dddddddd
реализует только одну инструкцию - загрузку в регистр A 15-битного данного d зашитого в инструкцию.
Формат C-команд: 100acccc ccdddjjj
В сущности это "широкое машинное слово" которое в битах своих довольно прямолинейно включает/выключает довольно простые блоки в схеме ALU чтобы получить результат.
Можно быстро объяснить так:
Изначально в качестве входов в ALU участвуют A и D, но бит a заменяет вход с A на содержимое ячейки по адресу A (в ассемблере это пишется как псевдорегистр M).
Далее код операции c содержит следующие биты: зануление входа 1, зануление входа 2, инверсия входа 1, инверсия входа 2, вычислять + или &, инвертировать результат.
Комбинируя эти шесть бит можно получить следующие осмысленные результаты/операции на выходе из ALU:
0, 1, -1, A, D, !A, !D, -A, -D, A+1, D+1, A-1, D-1, A+D, A-D, D-A, A&D, A|D. Любое вхождение A может быть заменено на M.
После вычисления в ALU можно записать его результат куда-то и есть три места куда его можно записать: A, D, M - причём запись можно вести параллельно, потому что это три бита ddd. В том числе можно никуда не писать если все они будут 0.
Ну и в конце инструкции она либо перейдёт к следующей инструкции в памяти либо совершит прыжок по условию в jjj в адрес в A (всегда только в A).
Дело в тут в том, что на это этапе ALU еще выдаёт два бита флагов результатов выполнения операции - получился ли он нулевым или отрицательным.
Поэтому возможны все комбинации сравнения результата только что записанного в d с нулём, включая безусловный переход или отсутствие перехода.

В результате такого широкого поведения команды в ассемблере составные и выглядят примерно так:

@100 // загружает в A константу 100
DAM=A+D;JGE // записывает в D, A и M (ячейку по адресу 100) результат A+D и прыгает по адресу 100 если результат >= 0

Однако вышеприведённая команда является некорректной, т.к. проц перемкнёт из-за одновременного использования в инструкции M и ненулевых битов jjj (перехода). Тут это скорее как демонстрация полного синтаксиса. Ибо его можно сокращать:
Если не нужно никуда условно или безусловно переходить, то можно откинуть всё после ; включительно:

DAM=A+D

Компоненты записи результата можно тоже откидывать.

D=A+1

Если же не нужно никуда записывать результат, то можно откинуть всё до = включительно:

A+D;JEQ // сложить A и D и если результат ноль, то перейти на A

Если нужен безусловный переход, то он делается так:

@address // загружаем в A адрес куда перейти
0;JMP // в ALU генерируем 0 который никуда не записываем и безусловно переходим на A

Как видно система команд крайне минималистична и довольно избыточна, но... действительно тупая как пробка чтобы просто замыканием сигнальных линий практически прямо заведённых со слова инструкций в мультиплексоры всякие заставить микросхемы логики сделать всё что нужно и выйти в закат.
Довольно забавно как по мне...
В плане практики программирования тут постоянно инструкции идут парами - сперва загрузить в A 15-битное данное, потом провернуть либо переход на адрес A, либо какое то вычисление с D и A или M. И так вот парами, парами идёт основной поток команд.

Больше документации тут:
https://docs.wixstatic.com/ugd/44046b_7ef1c00a714c46768f08c459a6cab45a.pdf
https://github.com/shubham1172/nand2tetris/blob/master/README.md

#1769
0:05, 14 июля 2022

=A=L=X=
> Архитектура процессора тут следующая.
Чем то похожа и на Gigatron, но странно стековый код VM под неё делают, а вот "Форт" подобный язык и как сделанный в Gigatron  в репозотриях Github нет. :)

Страницы: 1117 118 119 120125 Следующая »
ФлеймФорумЖелезо