С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
MAP 0 - задаёт начальное значение
последующие #1 увеличивают на единицу.
Т.е. по метке MISERY можем узнать индекс.
Код:MAP 0 NONAME: #1 ZTERM SOTHIC: #1 GETWORD W_THE GETWORD W_SOTHIC GETWORD W_COMPLEX ZTERM MISERY: #1 GETWORD W_THE GETWORD W_ROOM GETWORD W_OF GETWORD W_MISERY ZTERM TROLLW: #1 GETWORD W_TROLLWYND ZTERM
Как MAP и # (FIELD) работают понятно. Вопрос не в этом, а в том какой смысл их так использовать, т.к.:
1. придуманы они были явно не для этого (а для того чтобы описывать что-то вроде структур с полями разного размера),
2. какой смысл в этих индексах в данном случае, как по ним искать адреса сообщений?
блиииин, с именем файла закосячил, не тот прислал.
Ну да, в идеале тесты показывают 4 зеленых квадрата на бордюре.
если какая-то команда длиннее-короче по тактам в contended памяти, то картинка естественно рушится.
я не все команды так точно подгонял. Но в данном случае не важно.
если просто лоб-в-лоб сравнить два скомпиленных файла, то видно отличия в басик-заголовке. Скорее всего. Сами тесты вряд ли чем помогут. Но в личку могу.
Profi v3.2 -=- Speccy2010,r2
Отличался один байт в заголовке (спасибо C++-ной якобы "строгой" типизации %@#@%%@%#), поправил в последнем релизе. Работает вроде точно также, но отличаются и другие байты. Так что на исходник хотелось бы посмотреть.
- - - Добавлено - - -
Ошибки касающиеся макросов - исправлено в последнем релизе.
- - - Добавлено - - -
В приниципе то же самое (если я правильно понял) можно сделать с помощью макросов:
Код:MSGINDEX=0 MACRO N L MSGINDEX = MSGINDEX + 1 L EQU MSGINDEX ENDM LENGTH_3: W_AND: N _AND DC "AND" W_THE: N _THE DC "THE" W_OAK: N _OAK DC "OAK"Код:$ sjasmplus --lst --lstlab file.asm $ cat file.lst 01 0000 MSGINDEX=0 02 0000 MACRO N L 03 0000~ MSGINDEX = MSGINDEX + 1 04 0000~ L EQU MSGINDEX 05 0000 ENDM 06 0000 07 0000 LENGTH_3: 08 0000 W_AND: 09 0000 N _AND 10 0000 41 4E C4 DC "AND" 11 0003 W_THE: 12 0003 N _THE 13 0003 54 48 C5 DC "THE" 14 0006 W_OAK: 15 0006 N _OAK 16 0006 4F 41 CB DC "OAK" 17 0009 Value Label ------ - ----------------------------------------------------------- 0x0003 MSGINDEX 0x0000 X LENGTH_3 0x0000 X W_AND 0x0001 X _AND 0x0003 X W_THE 0x0002 X _THE 0x0006 X W_OAK 0x0003 X _OAK
Новый релиз v.20190304.3: https://github.com/sjasmplus/sjasmplus/releases
Fixed
- Spaces in MACRO arguments caused trouble
- SAVETAP: Fix tape header tag
sjasmplus-win64-20190304.3
Win7 машина, sjasmplus-win64-20190304 запускается без падений.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)