Компилятор LCC
2022-08-06 01:16Я подрихтовал маленько компилятор LCC. Теперь он нормально собирается и не глючит. Попробуем приспособить для БЭСМ-6.
Исходники на Гитхабе: github.com/besm6/lcc/
Сам компилятор качественно описан в книжке:

Исходники на Гитхабе: github.com/besm6/lcc/
Сам компилятор качественно описан в книжке:


no subject
Date: 2022-08-10 17:50 (UTC)На практике кратно должно быть тому, чем железка умеет манипулировать. Это может быть и 16 бит, и 17.
Но если очень хочется поддержать 8 бит, когда железка умеет манипулировать только 16 или 96 битами, тогда нужно генерировать дополнительный код для упаковки-распаковки данных (16=8*2 или 96=8*12), и Си позволяет делать указатели разного размера, в зависимости от типа, на который они указывают.
Т.е. указатель на октет будет толще, чем указатель на машинное слово, и в первом указателе будут храниться и указатель на всё машинное слово и некоторый селектор, говорящий, где в этом слове находится нас интересующий кусочек. Это как если бы на 8086 использовали обычные указатели (только смещение, без сегмента) на типы размера кратного машинному слову и дальние указатели (сегмент:смещение) на типы размеров меньше машинного слова.