Как написать два цикла массива на языке ассемблера - PullRequest
0 голосов
/ 22 марта 2020

Вопрос состоит в том, чтобы записать al oop -инициализирующую сумму (массив № 2) в сумму всех предыдущих элементов массива (массив № 1). Итак, в java:

sum [i] = sum [i-1] + array [i] // с инициализацией sum [0] для массива [0]

Мой код до сих пор имеет следующие строки:

    array   fill        20  
    sum     fill        20

    LDR     R1,=array ; 
    LDR     R2,=1 ; initialize R1 to 1
    LDR     R3,=20 ; initialize R3 to 20

    LDR     R4,=sum
    LDR     R5,=1 ; initialize R4 to 1
    LDR     R6,=20 ;


   loop    STRB     R2,[R1,#0] ; 
           ADD      R2, R2,#1 ; Add 1 to R2
           ADD      R1, R1,#1 ; Add 1 to R1
           CMP      R2,R3 ; compare R2 and R3
           BNE      loop ; loop while not equal (R2 and R3)


   loop2   STRB     R5,[R4,#0] 
           ADD      R5, R5,#1
           ADD      R4, R4,#1
           CMP      R5,R6
           BNE      loop2

Окончательное значение должно быть 210.

Я знаю, что я инициализировал мою сумму l oop неправильно, но я не знаю, как это исправить. Я также не могу продолжить с кодом.

Я только начал изучать язык ассемблера и буду признателен за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...