Замена целых чисел в RISC-V - PullRequest
       16

Замена целых чисел в RISC-V

0 голосов
/ 23 сентября 2019

"Найдите наименьшее целое число в последовательности, затем замените его целым числом в начале последовательности. Используйте команду ассемблера DD для сохранения в начале памяти начальной тестовой последовательности 121, 33, -5, 242., -45, -12, 0 "

src:    DD  121, 33, -5, 242, -45, -12, 0 // given these numbers
        add x6, x0, x0
        add x7, x0, x0       // temp reg to store smallest integer
loop:   ld x5, src(x6)
        beq x5, x0, end      // ends if reaches the 0 in the sequence of numbers

// Compare the values of x5 and x7, x7 stores smallest integer

        addi x6, x6, 8
        beq x0, x0, loop
end:    // need to swap memory addresses with smallest integer and integer in beginning of sequence
        ebreak x0, x0, 0

Я начал делать более основную часть кода.До сих пор он должен перебирать все целые числа и, как только он достигает 0, он ломается Сейчас я думаю, в основном, о том, как поменять 121 и -45 в памяти.

MEMORY
ADDRESS            HEXADECIMAL        INTEGER              
0x0000000000000000 0x0000000000000079 121                 // this should be -45
0x0000000000000008 0x0000000000000021 33                  
0x0000000000000010 0xfffffffffffffffb -5                  
0x0000000000000018 0x00000000000000f2 242                 
0x0000000000000020 0xffffffffffffffd3 -45                 // this should be 121
0x0000000000000028 0xfffffffffffffff4 -12                 
0x0000000000000030 0x0000000000000000 0                   

Что мы узнали до сих пор: данные в памяти (DD, ld, sd, DM, ORG) Ветви: bge, beq, (bne, jal, jalr, bltu, blt, slt, slti: не думайте, что мы используем jal или jalr для этого упражнения).

...