Я иногда использую локальные метки и они, кстати, периодически незаменимы (в макросах).
Но у меня как-то мышление неправильно под них выстраивается, и я начинаю психовать, когда пытаюсь писать с ними систематически. Особенно, видимо, мешает как раз их локальность, т.к. номерки скачут через другие метки, а локальные — не могут и меня это как-то очень деморализует.
Это ты про 3.1 «приемлемо только по началу — одноразовое исполнение, но что делать потом?
с кучей ссылок на ссылки и данными оттуда, которые ссылаются на данные»? Ну да, ссылок больше. Но есть одно достоинство — ты не путаешь метки с данными. Пример из моего кода:
Видишь? Мне не нравится писать ld (trb_play+1),hl, потому что я начал рефактор, добавил команду и получил чудесные глюки.
Да, это больше меток и труда. Но это реально лучше код.
do_some_stuff
ld a, b
or a: jr z, .leave
.loop
add hl, hl
djnz .loop
.leave
dec hl
ret
do_other_stuff
ld b, a
.loop
sbc hl, de
djnz .loop
ret
Код, само собой, от балды и смысла не несёт, оптимизировать не надо )
Штука в том, что метки с точкой «видны» только внутри блока, до следующей «обыкновенной» метки. Внутри второй процедуры я спокойно могу использовать имя .loop повторно, и ничего мне за это не будет )
Однако к такой метке можно при желании доступиться и извне, указав полный путь типа jp do_some_stuff.leave.
Т. е. такая себе более удобная / приятная для понимания альтернатива вот этим вот всем 1b / 2f.
И я :)
Про метки — я бы ещё локальные, с точкой которые, упомянул бы. Нравятся они мне, не засоряют неймспейс )
сравни время набора такого кода
Мне кажется, дешевле всё же набрать по-человечески, чем потом сушить мозги.
Хотя я тоже люблю пхать в строку короткие смысловые блоки типа or a: jr z, milf.
вкусовщина.
приемлемо только по началу — одноразовое исполнение, но что делать потом?
с кучей ссылок на ссылки и данными оттуда, которые ссылаются на данные.
либо же — быстрый но рабочий набросок за один вечер, который абсолютно был не описан но сегодня для тебя имеет значение как особенная реализация стандартной процедуры
парни, я вижу противостояние кода в линию против кода в строку.
и считаю что оба этих метода — удобны. и знаю последователей — вас, psndcj.
но мне просто удобнее мой, привычый :)
о портах — офигенное замечание, даже не задумывался никогда о таком.
но всё таки — это всё связано удобством для себя, в прошлом и будующем, а так-же для остальных.
с кратким кодом не согласен, но я знаю — это вкусовщина.
Номер 3.1 — вкусовщина. Раньше я всегда писал (ololo+1), сейчас мне кажется, что это путает. Чаще ввожу специально явную ссылку. Но вообще, обычно у меня в одном исходнике обычно можно найти и так и эдак. Когда-нибудь преодолею…
Номер 4 — вкусовщина.
Номер 6 требует в качестве подпункта ссылку на макро-библиотеку Flying, которая не содержит ни одного компилируемого байта: zxpress.ru/article.php?id=3614
Реальный дзен и, если чуть серьёзнее, там и правда есть несколько хороших идей.
Про 1. — резко нет. Чем дальше пишу, тем больше кода мне хочется иметь на экране.
Так вот. Проблема не коде в строчку. Проблема в неудобных мнемониках и каше из разных частей кода в строке.
Т.е., твои примеры «неправильные». К коду в строку отношения не имеющие.
Задумайся сам, зачем тратить на это 7 строк:
ShortLine: ld a,e : sub l : jr nc,Left2Right
ld a,l : sub e : ex de,hl
Left2Right: ld e,a ; l=X0, e=DX (always draw left-to-right)
Но у меня как-то мышление неправильно под них выстраивается, и я начинаю психовать, когда пытаюсь писать с ними систематически. Особенно, видимо, мешает как раз их локальность, т.к. номерки скачут через другие метки, а локальные — не могут и меня это как-то очень деморализует.
Люди. Складывайте библиотеки в модули. Это реально упрощает жизнь.
с кучей ссылок на ссылки и данными оттуда, которые ссылаются на данные»? Ну да, ссылок больше. Но есть одно достоинство — ты не путаешь метки с данными. Пример из моего кода:
Видишь? Мне не нравится писать ld (trb_play+1),hl, потому что я начал рефактор, добавил команду и получил чудесные глюки.
Да, это больше меток и труда. Но это реально лучше код.
Код, само собой, от балды и смысла не несёт, оптимизировать не надо )
Штука в том, что метки с точкой «видны» только внутри блока, до следующей «обыкновенной» метки. Внутри второй процедуры я спокойно могу использовать имя .loop повторно, и ничего мне за это не будет )
Однако к такой метке можно при желании доступиться и извне, указав полный путь типа jp do_some_stuff.leave.
Т. е. такая себе более удобная / приятная для понимания альтернатива вот этим вот всем 1b / 2f.
расскажи плиз, о .1
Про метки — я бы ещё локальные, с точкой которые, упомянул бы. Нравятся они мне, не засоряют неймспейс )
Мне кажется, дешевле всё же набрать по-человечески, чем потом сушить мозги.
Хотя я тоже люблю пхать в строку короткие смысловые блоки типа or a: jr z, milf.
приемлемо только по началу — одноразовое исполнение, но что делать потом?
с кучей ссылок на ссылки и данными оттуда, которые ссылаются на данные.
либо же — быстрый но рабочий набросок за один вечер, который абсолютно был не описан но сегодня для тебя имеет значение как особенная реализация стандартной процедуры
и считаю что оба этих метода — удобны. и знаю последователей — вас, psndcj.
но мне просто удобнее мой, привычый :)
но всё таки — это всё связано удобством для себя, в прошлом и будующем, а так-же для остальных.
с кратким кодом не согласен, но я знаю — это вкусовщина.
Так пишут только мудаки!
ага и zeus отменили, да? Помести см себя на место другого, который будет использовать твой код на другом ассемблере.
а теперь сравни время набора такого кода и форматированного сырка. Учись читать, короче.
фак сам себе написал короче.
Скачать работы одним архивом с парой бонусных файлов.
Номер 3.1 — вкусовщина. Раньше я всегда писал (ololo+1), сейчас мне кажется, что это путает. Чаще ввожу специально явную ссылку. Но вообще, обычно у меня в одном исходнике обычно можно найти и так и эдак. Когда-нибудь преодолею…
Номер 4 — вкусовщина.
Номер 6 требует в качестве подпункта ссылку на макро-библиотеку Flying, которая не содержит ни одного компилируемого байта:
zxpress.ru/article.php?id=3614
Реальный дзен и, если чуть серьёзнее, там и правда есть несколько хороших идей.
Хотя у меня всё не так! :)
Так вот. Проблема не коде в строчку. Проблема в неудобных мнемониках и каше из разных частей кода в строке.
Т.е., твои примеры «неправильные». К коду в строку отношения не имеющие.
Задумайся сам, зачем тратить на это 7 строк: