2026-06-28 11:58:44 +03:00
|
|
|
|
;./тесты/вывод_однозначного/вывод_однозначного.elf
|
|
|
|
|
|
; Ожидаемый вывод: "7"
|
|
|
|
|
|
|
|
|
|
|
|
; ============================================================
|
|
|
|
|
|
; вывод_однозначного.квс - вывод однозначного числа без циклов
|
|
|
|
|
|
; Преобразует цифру 7 в символ '7' через сложение с '0'
|
2026-06-28 12:06:14 +03:00
|
|
|
|
; и выводит в терминал
|
2026-06-28 11:58:44 +03:00
|
|
|
|
; ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
.текст
|
|
|
|
|
|
.глобал _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
|