6809 в помощь)
Вид для печати
6809 в помощь)
Не обязательно ассемблер :) может какой волшебный луа скрипт, или ещё что :)
Один раз конечно можно пройти и всё заменить, но ведь в процессе модификаций могут опять появиться места, которые можно оптимизировать.
Хотелось бы иметь возможность периодически/постоянно это дело чекать.
- - - Добавлено - - -
Да, что-то такое и напридумывалось.
Если кто будет макро использовать, там чутка пофиксить надо:
https://i.imgur.com/qj1Ut5X.png
Да с безусловными проблема конечно, перезрузки макросов нет в принципе, а условия я думал сами добавите их у меня явно мало. Разбор параметров макросов в сжасме конечно убогий, я как то поднимал этот вопрос сделать как в tasm rst7, но на меня посмотрели как на идиота и пропустили мимо ушей. Как через луа сделать пока не сообразил, монструозно выходит.
Есть ли возможность в сджасме сделать вычитание константы из кадого байта массива при компиляции?
Например:
DB "2345678"
При копиляции вычитаем 1 и получаем результат
1234567
upd
--
нашел директиву ABYTEZ
А вот и облом. :(
Макрос вываливается по error: [IF] Forward reference, так понимаю, пытается посчитать смещение до метки, адрес которой ещё неизвестен, и может стать другим в результате этой самой подмены jp на jr.
Так что вопрос автоматизации (пускай и частичной) актуален.
может конечно известная бага
но я про нее напомню
нужно было сделать примерно следующее (убрано все лишнее для лучшего восприятия)
точнее такая конструкцияКод:dup 10
if aaa = 0
nop
endif
edup
Код:dup 10
if aaa = 0
endif
if aaa = 1
endif
if aaa = 2
endif
edup
в итоге при компиляции
Цитата:
error: Unexpected end of file
даиб;%?К%"№я этот№""№%;
я 20 минут плясал с бубном пытаясь понять где ошибка
сравнивая 2 версии исходника
как это можно скомпилировать неправильно науке не известно...
иногда жалеешь что связался с этим гиблым делом...
Скрытый текст
вынес if за dup-ы
в итоге 20 строк превратилось в 50...
+ еще пришлось делать
количествоdupов = 100500...
рукалицо...
[свернуть]
нужна наверное отдельная тема
багофичи sjasm-а
где в первом посте вести их список
NEO SPECTRUMAN, Этот баг разбирался еще лет так 5 назад
sjasm не приемлет IF/endif внутри dup\edup
Вот такой вопрос возник. Известно, что ужясм в виде .sna генерит кривую область системных переменных $5C00-$5CFF. А был ли фикс?
и еще: не помню кто, но слышал в чятике, что есть другая версия, которая поддерживает STORM'овский синтаксис вида .4 add a,a - повтор 4 раза строки. Если есть, то где можно скачать?