36 lines
1.7 KiB
Plaintext
36 lines
1.7 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 |