Size: a a a

Compiler Development

2020 December 30

DP

Dmitry Ponyatov in Compiler Development
Defragmented Panda
мне интересны самые-самые основы ассамблера

в идеале я хочу что-то вроде <1kb программу которая читает асм текст, таблицу значений opcode для целевой машины, и выдает машинный код

что мне стоит поискать?
Ну для начала Книгу Дракона просмотреть первым проходом, особо не вгрызаясь - чтобы точнее сформулировать вопрос. Сейчас непонятно что нужно: кодогенерацию для реального процессора, написать свой ассемблер, или что то ещё.
источник

DP

Defragmented Panda in Compiler Development
Dmitry Ponyatov
Ну для начала Книгу Дракона просмотреть первым проходом, особо не вгрызаясь - чтобы точнее сформулировать вопрос. Сейчас непонятно что нужно: кодогенерацию для реального процессора, написать свой ассемблер, или что то ещё.
написать свой ассемблер

чтобы генерил простой код для реального микроконтроллера
источник

M

MrSmith in Compiler Development
Спеки на ISA хватит
источник

M

MrSmith in Compiler Development
есть записки очерки по енкодингу мнемоник поишу на гите может потом, но там и правда пищешь просто декодинг и оно работает
источник

DP

Dmitry Ponyatov in Compiler Development
Defragmented Panda
мне интересны самые-самые основы ассамблера

в идеале я хочу что-то вроде <1kb программу которая читает асм текст, таблицу значений opcode для целевой машины, и выдает машинный код

что мне стоит поискать?
Для практики начни с собственного интерпретатора байт-кода + ассемблер для него + библиотеки + какой-то софт типа простых игрушек: позволяет пощщупать системное программирование в т.ч. компиляцию, без ненужной сложности маш.кода реальных процессоров.
источник

M

MrSmith in Compiler Development
Можно просто писать ассемблер для 8086
источник

M

MrSmith in Compiler Development
Или арма
источник

M

MrSmith in Compiler Development
и все
источник

DP

Defragmented Panda in Compiler Development
арм и интересен
источник

DP

Dmitry Ponyatov in Compiler Development
Defragmented Panda
написать свой ассемблер

чтобы генерил простой код для реального микроконтроллера
Почему не llvm ?
источник

M

MrSmith in Compiler Development
Потому что не машинные коды
источник

DP

Defragmented Panda in Compiler Development
Dmitry Ponyatov
Почему не llvm ?
потому что мне интересна возможность запускать сам ассамблер на микроконтроллере. а ллвм можно запустить разве что на пк.

я не думаю что ассамблер должен жрать столько рсурсов сколько жрет ллвм.
источник

M

MrSmith in Compiler Development
Можно упорно пойти кстати
источник

M

MrSmith in Compiler Development
Взять какое низкоуровневое представление дизасемблера
источник

AT

Alexander Tchitchigi... in Compiler Development
Defragmented Panda
потому что мне интересна возможность запускать сам ассамблер на микроконтроллере. а ллвм можно запустить разве что на пк.

я не думаю что ассамблер должен жрать столько рсурсов сколько жрет ллвм.
Вы же понимаете, что кроме собственно Assembling, Вам ещё понадобится Linking? 😉
источник

DP

Dmitry Ponyatov in Compiler Development
Defragmented Panda
потому что мне интересна возможность запускать сам ассамблер на микроконтроллере. а ллвм можно запустить разве что на пк.

я не думаю что ассамблер должен жрать столько рсурсов сколько жрет ллвм.
self-hosted, ok. Только Форт не трогай - залипнешь.
источник

DP

Defragmented Panda in Compiler Development
Dmitry Ponyatov
self-hosted, ok. Только Форт не трогай - залипнешь.
ну вот да. не поможете - пойду форт писать ) слишком уж простым кажется
источник

DP

Defragmented Panda in Compiler Development
Alexander Tchitchigin
Вы же понимаете, что кроме собственно Assembling, Вам ещё понадобится Linking? 😉
я не планирую библиотеки использовать
источник

RA

R A in Compiler Development
Defragmented Panda
ну вот да. не поможете - пойду форт писать ) слишком уж простым кажется
Только кажется.
источник

DP

Dmitry Ponyatov in Compiler Development
Alexander Tchitchigin
Вы же понимаете, что кроме собственно Assembling, Вам ещё понадобится Linking? 😉
При реализации в виде тёплого лампового Монитора это опция, как пример 'debug.com'.
источник