Skip to content

Commit

Permalink
ЛР10. Обновление обновление комментариев в листинге программы
Browse files Browse the repository at this point in the history
  • Loading branch information
HepoH3 committed Nov 14, 2023
1 parent f5dce97 commit 12ed407
Showing 1 changed file with 19 additions and 16 deletions.
35 changes: 19 additions & 16 deletions Labs/10. Interrupt subsystem/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -246,27 +246,30 @@ _Рисунок 4. Структурная схема контроллера пр
```asm
_start:
# Инициализируем начальные значения регистров
li sp, 0x00003FFC # устанавливаем указатель на верхушку стека
li gp, 0x00000000 # устанавливаем указатель на глобальные данные
li sp, 0x00003FFC # устанавливаем указатель на верхушку стека
# данная псевдоинструкция будет разбита на две
# инструкции: lui и addi
li t0, 0x00000001 # подготавливаем маску прерывания единственного
# (нулевого) входа
csrw mie, t0 # загружаем маску в регистр маски
li gp, 0x00000000 # устанавливаем указатель на глобальные данные
la t0, interrupt # псевдоинструкция la аналогично li загружает число,
# только в случае la — это число является адресом
# указанного места (адреса обработчика перехвата)
li t0, 0x00000001 # подготавливаем маску прерывания единственного
# (нулевого) входа
csrw mie, t0 # загружаем маску в регистр маски
csrw mtvec, t0 # устанавливаем вектор прерывания
la t0, interrupt # псевдоинструкция la аналогично li загружает число,
# только в случае la — это число является адресом
# указанного места (адреса обработчика перехвата)
li t0, 0x00001FFC # готовим адрес верхушки стека прерывания
csrw mscratch, t0 # загружаем в указатель на верхушку стека прерывания
csrw mtvec, t0 # устанавливаем вектор прерывания
li t0, 1 # начальное значение глобальной переменной
sw t0, 0(gp) # загружаем переменную в память
li t0, 0x00001FFC # готовим адрес верхушки стека прерывания
csrw mscratch, t0 # загружаем в указатель на верхушку стека прерывания
li t1, 0 # начальное значение, чтобы в симуляции не было xxx
li t2, 0 # начальное значение, чтобы в симуляции не было xxx
li t0, 1 # начальное значение глобальной переменной
sw t0, 0(gp) # загружаем переменную в память
li t1, 0 # начальное значение, чтобы в симуляции не было xxx
li t2, 0 # начальное значение, чтобы в симуляции не было xxx
# Вызов ecall исключительно из хулиганских соображений,
# поскольку в данной микроархитектурной реализации это
Expand All @@ -275,7 +278,7 @@ li t2, 0 # начальное значение, чтобы в
ecall
# Вызов функции main
main:
beq x0, x0, main # бесконечный цикл, аналогичный while (1);
beq x0, x0, main # бесконечный цикл, аналогичный while (1);
# ОБРАБОТЧИК ПРЕРЫВАНИЯ
# Без стороннего вмешательства процессор никогда не перейдет
Expand Down

0 comments on commit 12ed407

Please sign in to comment.