...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)
-
- Причем тут птичка? Флэш атмела - 16-битный. Читать можно и
побайтово, но писать только 16-битными словами. Команды тоже
состоят из 16-битных слов. Ассемблер не знает, что там в следующей
строке и что следующая строка вообще существует, и видя команду
.DB, дополняет данные до четного количества байт. Просто потому,
что иначе прошить невозможно. Следующую физическую строку его можно
заставить прочитать бэкслэшем, но следующую команду - нет. - Idler(Сегодня, 12:52 - 12:54)
- да разобрался, вчерась ещё :) спасибо всем понабежавшим с
камментами, если б вчера не разобрался, то это сильно помогло бы :)
Удивительно то, что при массиве ".db" происходить "выравнивание до
чётного" на каждом операторе :(( ничто не мешало бы ассемблеру
смотреть следующую строку при сборке. Неприятный недочёт, однако
:(( - Adept(Сегодня, 12:54)
- А чего тогда одну, а не 2, или вообще до конца файла?
avrasm/avrasm2 однопроходные, читают и ассемблируют по одной
ассемблерной строке из одного файла (все остальные включаются в
него инклудами, и обязательно до точки использования), линкера нет.
А вот GNUсный, вроде как двухпроходный, в нём и всякие
прагмы/атрибуты работают, и линкер есть. - Idler(Сегодня, 13:04)
- насчёт однопроходности не уверен. В исходниках, скажем п/п совсем не обязательно должны быть расположены вверх по тексту от точки их вызова, ссылки "вперёд" разрешены. Да и препроцессор AVRASM2 весьма продвинутый. Инклюды да, строго по очерёдности использования. Такое впечатление, что каждый файл обрабатывается в два прохода, а вот проект из файлов, собирается за один. - Adept(Сегодня, 14:10)
- А чего тогда одну, а не 2, или вообще до конца файла?
avrasm/avrasm2 однопроходные, читают и ассемблируют по одной
ассемблерной строке из одного файла (все остальные включаются в
него инклудами, и обязательно до точки использования), линкера нет.
А вот GNUсный, вроде как двухпроходный, в нём и всякие
прагмы/атрибуты работают, и линкер есть. - Idler(Сегодня, 13:04)
- да разобрался, вчерась ещё :) спасибо всем понабежавшим с
камментами, если б вчера не разобрался, то это сильно помогло бы :)
Удивительно то, что при массиве ".db" происходить "выравнивание до
чётного" на каждом операторе :(( ничто не мешало бы ассемблеру
смотреть следующую строку при сборке. Неприятный недочёт, однако
:(( - Adept(Сегодня, 12:54)
- Причем тут птичка? Флэш атмела - 16-битный. Читать можно и
побайтово, но писать только 16-битными словами. Команды тоже
состоят из 16-битных слов. Ассемблер не знает, что там в следующей
строке и что следующая строка вообще существует, и видя команду
.DB, дополняет данные до четного количества байт. Просто потому,
что иначе прошить невозможно. Следующую физическую строку его можно
заставить прочитать бэкслэшем, но следующую команду - нет. - Idler(Сегодня, 12:52 - 12:54)