У меня не было никакого ассемблера для моего восьмибитного Atari, поэтому я написал машинный код напрямую.Чтобы запустить код из BASIC, вы должны либо написать код в виде десятичных байтов данных, либо в виде строки.(Да, на самом деле вы могли бы написать код в строке, единственный код символа из 256, который вы не могли ввести, был 155 - код для возврата. К счастью, нет 6502 инструкции машинного кода с этим значением, так что это было толькопроблема, когда ветвь оказалась на 101 байт назад (-101 = 155).)
Я до сих пор помню общий фрагмент кода для запуска таймера:
104 (pla)
169, 7 (lda #7)
162, 6 (ldx #6)
160, 10 (ldy #10)
76, 92, 228 (jmp 0xE45C)
В последние годыЯ участвовал в некоторых соревнованиях по оптимизации размеров.Несмотря на то, что большая часть кода является сборкой, вам все равно нужно точно знать, какие инструкции производит ассемблер, чтобы вы знали, сколько их байтов.Кроме того, иногда вы используете приемы, такие как использование некоторых байтов как данных и кода, или использование нескольких байтов в качестве разных инструкций в зависимости от того, введете ли вы первый байт или введете в середине инструкции.Затем вы пишете инструкции в виде байтов данных в середине кода сборки.