Асемблер RISC-V
Пишіть і запускайте асемблер RISC-V прямо у браузері. Почніть з однієї інструкції та поступово переходьте до функцій і пам'яті. І асемблер, і симулятор працюють у браузері.
Уроки
Країни
Країна
Україна
Чи виробляє Україна чипи? В Україні немає заводу з виробництва чипів. Країна розбудовує fabless-індустрію, яка розробляє чипи вдома, а виготовляє їх за кордоном, спираючись на найбільші в Європі запаси титану.
Прочитати записКраїнаБразилія
Чи виробляє Бразилія чипи? Бразилія розробляє чипи — від мікроконтролера RISC-V BlueMacaw до дослідницьких ядер, таких як NoX, — тоді як внутрішнє виробництво залежить від зарубіжних фабрик. Державну фабрику CEITEC було розформовано указом у 2020 році.
Прочитати записПосилання
Арифметика
add
Додати два регістри разом.sub
Відняти один регістр від іншого.addi
Додати невелику константу до регістра.mul
Множення зі збереженням молодших 32 бітів.mulh
Старші 32 біти знакового добутку.div
Ділення цілих чисел зі знаком.divu
Ділення беззнакових цілих чисел.rem
Знаковий залишок (модуль).remu
Непідписаний залишок.neg
Змінити знак числа на протилежний.Побітова логіка
Зсуви
Порівняти й встановити
Пам'ять
lw
Завантажити 32-бітне слово з пам'яті.lh
Завантажити 16-бітне півслово (зі знаком).lb
Завантажити один байт (зі знаком).lhu
Завантажити 16-бітне напівслово (беззнакове).lbu
Завантажити один байт (беззнаковий).sw
Зберегти 32-бітне слово в пам’яті.sh
Зберегти молодші 16 бітів.sb
Зберегти молодші 8 біт.la
Завантажити адресу мітки.li
Завантажити будь-яку константу в регістр.mv
Копіювати один регістр в інший.Гілки
beq
Перейти, якщо два регістри рівні.bne
Перейти, якщо два регістри відрізняються.blt
Перейти, якщо менше (зі знаком).bge
Перейти, якщо більше або дорівнює (зі знаком).bltu
Перейти, якщо менше (беззнакове).bgeu
Перейти, якщо більше або дорівнює (беззнакове).beqz
Перейти, якщо регістр дорівнює нулю.bnez
Перейти, якщо регістр не дорівнює нулю.bltz
Перейдіть, якщо регістр негативний.bgez
Перейти, коли регістр містить нуль або додатне значення.bgtz
Стрибнути, якщо регістр додатний.blez
Перейти, коли регістр містить нуль або від'ємне значення.bgt
Перейти, якщо більше (зі знаком).ble
Перейти, якщо менше або дорівнює (зі знаком).Переходи та функції
Система
ecall
Попросіть систему щось зробити.nop
Нічого не робити протягом однієї інструкції.ebreak
Зупиніть програму в точці зупину.mret
Повернення з обробника пастки.wfi
Зачекайте, поки не надійде переривання.csrrw
Обміняти вміст регістра з керуючим регістром.csrrs
Прочитати регістр керування та встановити в ньому вибрані біти.csrrc
Прочитати регістр керування та очистити в ньому біти.csrrwi
Запишіть константу в керуючий регістр і прочитайте попереднє значення.csrrsi
Прочитати регістр керування та встановити біти з константи.csrrci
Прочитати регістр керування та скинути біти з константи.csrr
Прочитати регістр керування.csrw
Записати регістр у керуючий регістр.csrs
Встановлює біти в регістрі керування.csrc
Очистити біти у регістрі керування.csrwi
Записати константу в керуючий регістр.csrsi
Встановлює біти в регістрі керування з константи.csrci
Очистити біти в регістрі керування з константи.