AVR Byte Storage - PullRequest
       37

AVR Byte Storage

0 голосов
/ 19 февраля 2019

Эй, я новичок в программировании на ассемблере с семейством AVR, но знаком с UC, такими как PIC.Что меня сейчас смущает, так это следующий отрывок из некоторого примера кода.

.dseg
.org 0x0100

RegA: .byte 1
RegB: .byte 1
RegC: .byte 1

....

В семействе PIC вы указываете адрес помеченного регистра сразу после определения метки.Однако в семействе AVR с этим синтаксисом я не уверен, где хранится RegC.Я понимаю, что SRAM на ATMega328P имеет ширину 16 бит, так что это означает, что RegA и RegB хранятся в 0x0100?И в результате указатель стека автоматически увеличивается и сохраняет RegC по адресу 0x0101?

1 Ответ

0 голосов
/ 19 февраля 2019

Похоже, этот код определяет три однобайтовые переменные в памяти данных (RAM).

  • RegA будет храниться в 0x0100 (это адрес байта вRAM, а не 16-битное слово или что-то в этом роде)
  • RegB будет храниться в 0x0101
  • RegC будет храниться в 0x0102

Если вы можетечтобы скомпилировать и связать этот код, вы должны посмотреть список разборки или файл карты, чтобы убедиться в этом.

...