Мой учитель хочет, чтобы мы имели базовое представление об ассемблере, потому что позже это может быть полезно. Я согласен с этим, но мой колледж не предоставляет никакой документации по этому вопросу, кроме 4 небольших примеров. Я пытаюсь понять, что происходит в этом:
.DEVICE ATmega32
.CSEG
main:
ldi ZL,low(varclist<<1)
ldi ZH,high(varclist<<1)
.CSEG
varclist:
.db 1, 2
.db 3, 4
.db 5, 6
.db 7, 8
.db 9, 0
Я работаю в студии AVR 5 и смотрю на вкладку «процессор». Кажется, я не могу найти никакой связи между значениями в «varclist» и шестнадцатеричными значениями, которые показывают регистры. Как я смотрю на это?
Я ожидаю, что регистр Z будет содержать 0x0100, поскольку я полагаю, что «наиболее значимый» бит будет объявлен первым, а наименее значимый - последним объявленным. Однако я вижу 0x0070. Однако я не уверен, что делает переключение.