Прикреплённый файл «PseudoVM.asm»

Загрузка

   1 .globl  main
   2 .text
   3 main:   la      t1 handler
   4         csrw    t1 utvec
   5         csrsi   ustatus 1
   6         
   7 loop:   li      a7 5            # Ввод адреса
   8         ecall
   9         beqz    a0 done         # Если 0, конец
  10         andi    t0 a0 3         # Кратен ли 4
  11         beqz    t0 read         # Если да — чтение
  12         andi    a0 a0 -4        # Запись, затираем 2 бита
  13         mv      t1 a0           # Это «виртуальный» адрес
  14         li      a7 5            # Вводим значение
  15         ecall
  16         mv      t0 a0           # Готовим t0
  17         sw      t0 (t1)         # Сохраняем значение в «виртуальной памяти»
  18         b       loop
  19 read:   lw      t0 (a0)         # Читаем значение из «виртуальной памяти»
  20         mv      a0 t0
  21         li      a7 1            # Выводим значение
  22         ecall
  23         li      a0 '\n'         # И перевод строки
  24         li      a7 11
  25         ecall
  26         b       loop
  27 
  28 done:   li      a7 10
  29         ecall

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.