Директива OFFSET в gcc/avr_gcc

Я новичок в ассемблере, и чтобы немного попрактиковаться, я программирую Arduino, используя только ассемблер avr и avr_gcc. Я пытался использовать инструкции ST и LD, и в каждом примере, который я нашел, адрес загружается в регистр X, Y или Z напрямую, например:

ldi r30, 0x00
ldi r31, 0x06

Но есть ли (в avr_gcc) какой-либо способ поместить в регистр Z адрес переменной? Я знаю, что в masm для этого была директива OFFSET.


person LLDevLab    schedule 08.05.2017    source источник
comment
Вы можете использовать ldi с LOW и HIGH, например здесь и здесь.   -  person Margaret Bloom    schedule 08.05.2017
comment
Спасибо за ваш ответ. LOW и HIGH у меня почему-то не работают, но есть идея как погуглить :) . lo8 и hi8 работают. Получил ответ отсюда: stackoverflow.com/questions/34368602/   -  person LLDevLab    schedule 09.05.2017


Ответы (1)


LOW и HIGH не работают с avr-gcc. вместо этого работают lo8 и hi8.

person LLDevLab    schedule 09.05.2017
comment
Немного изменил, но это все, что я могу сказать об этой проблеме. - person LLDevLab; 10.05.2017