Обучающий компилятор SDCC, его часть Z80 (sdasz80). В нативных версиях ассемблера я использую:
ld (hl),LOW BUF
inc hl
ld (hl),HIGH BUF
для хранения 16-битного значения BUF
в двух 8-битных частях (высокая и низкая). Не могу найти как это сделать в SDCC, похоже это
ld (hl),#BUF & #0xff
inc hl
ld (hl),#BUF >> 8 & #0xff
компилируется без ошибок, с созданным кодом, являющимся правильным, но вторая загрузка не выглядит хорошо для меня, и никакие скобки для упорядочения логических операций не принимаются компилятором. Это правильно, и единственный способ добиться разделения 16-битного значения на 2 байта?
Обновление. Встречается в некоторых руководствах ASxxx >
и <
(см. Таблицу 4). Не работайте, сообщая об ошибках компиляции "Ошибка: ошибка адресации или режима адресации конкретного компьютера".
Update1:
Следующий код
BUF .equ #0xf55e
....
ld (hl),`HI(BUF)
выдает ошибку Error: <q> missing or improper operators, terminators, or delimiters
.