35 lines
1.6 KiB
Plaintext
35 lines
1.6 KiB
Plaintext
|
|
;./тесты/вывод_однозначного/вывод_однозначного.elf
|
|||
|
|
; Ожидаемый вывод: "7"
|
|||
|
|
|
|||
|
|
; ============================================================
|
|||
|
|
; вывод_однозначного.квс - вывод однозначного числа без циклов
|
|||
|
|
; Преобразует цифру 7 в символ '7' через сложение с '0'
|
|||
|
|
; ============================================================
|
|||
|
|
|
|||
|
|
.текст
|
|||
|
|
.глобал _start
|
|||
|
|
|
|||
|
|
_start:
|
|||
|
|
; Загружаем цифру для вывода
|
|||
|
|
переместить_имм раикс, 7 ; цифра 7
|
|||
|
|
|
|||
|
|
; Преобразуем цифру в ASCII-символ: '0' = 48
|
|||
|
|
прибавить_непосредственно раикс, 48 ; RAX = 7 + 48 = 55 = '7'
|
|||
|
|
|
|||
|
|
; Сохраняем символ в буфер
|
|||
|
|
сохранить [буфер], ал ; записываем байт '7' в буфер
|
|||
|
|
|
|||
|
|
; Системный вызов write(1, буфер, 1)
|
|||
|
|
переместить_имм раикс, 1 ; номер syscall write = 1
|
|||
|
|
переместить_имм рдиай, 1 ; stdout = 1
|
|||
|
|
переместить_имм рсиай, буфер ; указатель на буфер
|
|||
|
|
переместить_имм рдикс, 1 ; длина = 1 байт
|
|||
|
|
вызов_системы
|
|||
|
|
|
|||
|
|
; Системный вызов exit(0)
|
|||
|
|
переместить_имм раикс, 60 ; номер syscall exit = 60
|
|||
|
|
переместить_имм рдиай, 0 ; код возврата = 0
|
|||
|
|
вызов_системы
|
|||
|
|
|
|||
|
|
.данные
|
|||
|
|
буфер: .байт 0
|