36 lines
1.6 KiB
Plaintext
36 lines
1.6 KiB
Plaintext
;./тесты/остаток_от_деления/остаток_от_деления.elf
|
||
;echo $? # должен быть 2
|
||
|
||
;для вывода чисел в терминал нужно преобразование в строку
|
||
;а для этого нужен остаток от деления (но тут надо бы больше случаев отработать)
|
||
|
||
; ============================================================
|
||
; остаток_от_деления.квс - тест операции деления и остатка
|
||
; Проверяем: 42 / 10 = 4 остаток 2
|
||
; ============================================================
|
||
|
||
.текст
|
||
.глобал _start
|
||
|
||
_start:
|
||
; Подготовка делимого: RDX:RAX = 0:42
|
||
переместить_имм раикс, 42 ; делимое = 42
|
||
переместить_имм рдикс, 0 ; обнуляем RDX (старшая часть 128-битного делимого)
|
||
|
||
; Делитель в регистр
|
||
переместить_имм рбикс, 10 ; делитель = 10
|
||
|
||
; Выполняем деление: RDX:RAX / RBX
|
||
; После деления: RAX = частное (4), RDX = остаток (2)
|
||
разделить рбикс
|
||
|
||
; Перемещаем остаток в RDI для кода возврата
|
||
переместить рдиай, рдикс ; остаток из RDX в RDI
|
||
|
||
; Системный вызов exit
|
||
переместить_имм раикс, 60 ; номер syscall exit = 60
|
||
вызов_системы
|
||
|
||
.данные
|
||
тестовая_переменная: .байт 0
|