Листинг представляет собою расширенный шестнадцатеричный дамп машинных кодов, в
котором можно частично использовать механизмы блочного программирования.
Пример #1- «21[ "HELLO, WORLD" 00 ] CD 18 F8 C3 6C F8»
Здесь:
- Конструкция «[ … ]» формирует блок инструкций или таблицы
- Код «21» команды «LXI H» непосредственно перед «[…]» помещает адрес блока в HL
Пример #2- «21 D0 76 0E 4E [ 36 17 23 0D C2] C3 6C F8»
- «21 D0 76 0E 4E [ 36 17 23 0D C2 +0] C3 6C F8»
- «21 D0 76 0E 4E [ 36 17 23 0D CA -0 C3] C3 6C F8»
Здесь:
- Код «C2» команды «JNZ» непосредственно перед «]» организует цикл в блоке
- Код «С2» с величиной «+0» означает условный переход на блок текущего уровня
- Код «CA» с величиной «-0» означает условный выход из блока текущего уровня
Пример #3- «[ CD 03 F8 FE 20 CA -0 4F FE 0D CA[ 0E 07 ] CD 09 F8 C3] C3 6C F8»
Здесь:
- Код «CA» команды «JZ» и непосредственно «[…]» организует условный блок
Пример #4- «2A X1 22 Y»
Здесь:
- Символы «G…Z» адресуют область ОЗУ под переменные
- Каждая переменная занимает 10 ячеек памяти
- Цифра за буквой определяет индексное смещение относительно адреса переменной
Ниже - архив с самим транслятором и скриншот с примером трансляции листинга
недо-Питона в исполняемый код.
Ну, ресурс - тематический. Разработка - тематическая.
Кому надо - зайдёт да найдёт!