Прикреплённый файл «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 из ссылки «[получить]», так как он чисто внутренний и может измениться.Вам нельзя прикреплять файлы к этой странице.