Какова ценность в Аккумуляторе?

Это практический вопрос для экзамена по микроконтроллерам с использованием языка Assembly, он просит найти содержимое в аккумуляторе после того, как окончательная строка была выполнена. Я не могу понять, как ответ составляет 5 долларов США, если кто-нибудь знает об Ассамблее, пожалуйста, помогите мне!

     START: LDA   #$11  ; load accumulator

            STA   $2123 ; store accumulator to a memory address

            CLRA

            LDA   #$67     ; load accumulator

            LDHX  #$2120    ; load index register

            SUB   $03, X   ;subtract accumulator using index register

            ADD   #$06      ; add accumulator
+2
источник поделиться
1 ответ
START: LDA   #$11  ; load accumulator
 - A=$11
       STA   $2123 ; store accumulator to a memory address
 - memory[$2123] = $11
       CLRA
 - A=$00 (redundant, as next instruction will load A again)
       LDA   #$67     ; load accumulator
 - A=$67
       LDHX  #$2120    ; load index register
 - H:X=$2120
       SUB   $03, X   ;subtract accumulator using index register
 - this is addressing mode "Indexed, 8-Bit Offset" (indexed by H:X)
 - target memory address is calculated as H:X+$03 = $2123
 - finally subtraction is done on A: A=A-memory[$2123] ($67-$11=$56)
       ADD   #$06      ; add accumulator
 - A=A+$06 ($56+$06=$5C)

Обратите внимание на #$ vs $ (немедленное шестнадцатеричное значение с адресом памяти/смещением шестнадцатеричного значения) и в целом на синтаксис вашего ассемблера (я на самом деле в основном угадываю, какой именно процессор и ассемблер именно вы используете, похоже на Freescale HCS08, но вы должен знать лучше, и я никогда не делал код для аналогичного), так как каждый ассемблер может иметь тонкие (разные) детали, как писать определенные машинные инструкции, и каждый процессор имеет другой набор команд (какие инструкции доступны и как вы можете разрешить определенные проблемы программирования с ними эффективно).

Таким образом, вы должны хорошо знать синтаксис, чтобы правильно осветить, какая команда создается конкретной линией, а затем вы можете проверить руководство по набору инструкций, что именно делает эта инструкция (и ее вариант). Это также помогает многому потренироваться с отладчиком, на самом деле записывая небольшие задачи и одношаговый отладчик по каждой инструкции, сравнивая фактические результаты с вашими предположениями.

+4
источник

Посмотрите другие вопросы по меткам или Задайте вопрос