По фиксированным неинтересно. Тогда уж хоть на бордюре ;)
Вид для печати
А если серьезно индексную адресацию с постоянным базовым адресом можно и прямой назвать, но с другой стороны переменные в табличке появляются по мере интерпретации фактически адресация хрен поймеш какая, можно сказать и быть почти правым что выделяется память и имя переменной является указателем
ADD/ADC и SUB/SBC не использую
тоже без них. и вообще, хватит перечислять список комманд Z80.
если угадаешь, то интрига пропадёт :)
---------- Post added at 15:05 ---------- Previous post was at 15:02 ----------
Lethargeek, так что, надо на бордюре?
не буду использовать LD/ADD/ADC/SUB/SBC/XOR/AND/OR/OUTI/OUTD
придётся использовать OUT(254),A
если делаю - пишешь в плашке "BETA BASIC is better then assembler."
LD SP,NN ? низзяЦитата:
стек на экранную область
и вообще, придумай лучше свой метод, а не угадывай мой :)
Wowik, не гадай, я попкорн ищу....
тем временем у меня на 100% оформилась первая абсолютно не читерская идея как вывести фиксированную надпись в фиксированном месте.
за подпись "AMIGAAAAAHHHHH rulez, ZX sux" (на две недели, причём надо как обычно писать на форуме, а не залазить в подполье) я отдам свою щикарную идею в массы.
кто готов?
че бы мне тоже попросить за такую идею? я ж тоже могу:)
вывести надпись не используя ни самомодификации кода, ни LD/ADD/....... ?
ах да, процедуры ПЗУ тоже не используя.
крут тогда :)
Ага, щяз... SCF, CCF, CPL, RLA, DAA, SET, RES, RLC (ix+),a
И потом, не я же утверждал, то там где-то без чего-то не обойтись :rolleyes:
---------- Post added at 16:23 ---------- Previous post was at 16:19 ----------
НИИ ПЕТ
Как же не безопасные? Адресация-то ПРЯМАЯ :D
Ну, исправил сразу же, проверяя в эмуле
И все, навек никаких ошибок
Адреса модифицируемых ячеек - КОНСТАНТЫ :v2_tong2:
Lethargeek, ты не понимаешь смысл безопасности кода, вот и всё.
Смысла сфеерической безопасности в синклервакууме? :D
Чем опасна процедура, заведомо неспособная ничего испортить?
Кто-то тут говорил о том, что будто бы ассемблер - это структурный язык. Ну-ну. Человеку, который еще не понял основных принципов программирования, предлагаем понять, как это программа может модифицировать сама себя?
Ты по сути не опроверг моего высказывания о том, что ассемблерные программы сложны в отладке из-за того, что вследствие ошибок может испортиться в неожиданном месте сама программа или ее данные. Начинаешь рассуждать здесь о частностях, пытаясь отвлечь дискуссию в сторону, потому что по главному тезису аргументов у тебя нет. Юлишь, пытаясь уклониться от признания, что наехал безосновательно. Я смотрю, тебе бы хоть весь мир вокруг перевернулся. Устроил из конструктивной дискуссии балаган. Истина для тебя ничто по сравнению с желанием победить в споре, т.к. я сомневаюсь, что тебе нужно объяснять нижеследующие элементарные вещи, которые ты скорее всего и так знаешь, но намеренно "забыл" учесть при написании своего сообщения.
Модифицирующийся код может превратить прямую адресацию в косвенную по сути. Последствия от ошибок в таком коде - те же или еще хуже, т.к. в программу не по ошибке, а даже преднамеренно вносятся изменения во времени ее выполнения. Современные тенденции в архитектуре вычислительных систем направлены на устранение возможности ошибочной или злонамеренной модификации программы путем помещения ее в ПЗУ или в область ОЗУ, защищенную от записи. Попутно, конечно, блокируется и возможность самоизменения программы в благих целях, но раз этим жертвуют, значит опыт научил, что такая жертва оправдана.
"исправил сразу же" - это навроде печати сообщений одной командой CALL PRINT. Ты пытаешься сложные и трудоемкие вещи представить простыми.
если интересно вот пример одной из ошибок - в одной достаточно известной игре в один прекрасный момент экран заполнялся всяким мусором. мне удалось найти ошибку в процедуре печати энергии.
A,(XXXX)
SRA A
SRA A
сможете понять чем чреват такой кусок ?
goodboy, A,(XXXX) это LD A,(XXXX) ?
честно говоря кусок как кусок, я ж не знаю что там дальше с этим A делается.
может там
LD A,(#4000)
SRA A
SRA A
XOR A
OUT (#FE),A
:)
есть догадка что стоило бы использовать SRL вместо SRA, но это остаётся лишь догадкой, ибо я не знаю куда дальше это A идёт.
Спят все... В общем нате вам мой супер крутой вывод надписи без LD/SUB/ADD/XOR/... и т.д.
использую только NOP и RST #38 :) (и небольшой подготовительный код, который устанавливает чёрный цвет бордеру)
Код:
ORG #57F9
L0 DEC A
JR NZ,L0
OUT (#FE),A
JR $
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
RST #38
NOP
NOP
NOP
NOP
RST #38
RST #38
RST #38
NOP
RST #38
RST #38
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
RST #38
RST #38
NOP
RST #38
RST #38
RST #38
NOP
NOP
RST #38
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
RST #38
RST #38
NOP
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
RST #38
RST #38
NOP
NOP
RST #38
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
RST #38
NOP
NOP
RST #38
RST #38
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
RST #38
RST #38
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
RST #38
RST #38
NOP
NOP
NOP
RST #38
RST #38
RST #38
NOP
RST #38
RST #38
RST #38
NOP
RST #38
RST #38
RST #38
NOP
RST #38
RST #38
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
RST #38
RST #38
RST #38
RST #38
RST #38
NOP
RST #38
RST #38
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
RST #38
RST #38
NOP
RST #38
RST #38
RST #38
NOP
RST #38
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
RST #38
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
RST #38
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
RST #38
NOP
RST #38
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
RST #38
RST #38
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
RST #38
RST #38
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
RST #38
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
RST #38
NOP
NOP
NOP
RST #38
RST #38
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
RST #38
NOP
RST #38
NOP
NOP
NOP
RST #38
RST #38
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
RST #38
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
Что "ну-ну"? Что такого неструктурного в самомодифицирующемся коде?
А как любой человек каждодневно "модифицирует сам себя"? :rolleyes:
Ты по сути его не доказал :v2_tong2: Ну испортилась, и что?
Чем сложней отлаживать на эмуле испорченную по сравнению с неиспорченной?
Начинаешь рассуждать о всяких левых косинусах и численных методах, уводя дискуссию в сторону, потому что по главному тезису аргументов у тебя нет. Юлишь, пытаясь уклониться от признания, что высосал проблему из пальца. Развел по конструктивному вопросу злостный офтоп.
Последствия от ошибок в таком коде - лишний запуск в эмуляторе
Да и то необязательно, адрес можно на ходу поправить при трассировке
ГДЕ "оправдана"? :v2_dizzy_facepalm:
На Спектруме для игрушек?
Или все же в "современных архитектурах"?
Может, перестанешь наконец офтопить в каждом посте?
Ты пытаешься простенькие вещи представить сложными даже не задумавшись
неа, все эти DB XX,YY,ZZ в дебаггере эмулятора превращаются ... превращаются ... в комманды :)
---------- Post added at 02:05 ---------- Previous post was at 01:57 ----------
пзу там может и не быть.
ну а если так принципиально, то RST #38 можно заменить на:
DEC DE
INC H
DEC L
CCF
CP A
RET
JP NC,скока_получиццо
IN A,(скока_получиццо)
CALL PO,скока_получиццо
а так же хит сезона:
NOP*, правда такой инструкции ассемблеры не знают, надо будет DB делать.
все. NOP тоже комманда, ED ED ED ED тоже комманда (NOP*), и т.д.
назови мне любой байт (и несколько следующих за ним) - я назову тебе комманду.
это не прикольно вааще. вот чтобы прога была скажем на #8000 и оттуда печатала на экран - вот это интереснее, но тоже просто.
п.с. Lethargeek - тролль:)