kvs/тесты/циклы9.квс

77 lines
2.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.текст
.глобал _start
_start:
; МЕНЯЙ ЧИСЛО:
переместить_имм р8, 750
; Выводим число (костыльно: делим на 100, потом на 10)
сравнить_с р8, 100
переход_если_меньше меньше_100
; >= 100: делим на 100
переместить раикс, р8
переместить_имм рдикс, 0
переместить_имм рсикс, 100
разделить рсикс ; rax = сотни, rdx = остаток
; Выводим сотни
прибавить_непосредственно раикс, 0x30
сохранить [буфер], раикс
переместить_имм раикс, 1
переместить_имм рдиай, 1
переместить_имм рсиай, буфер
переместить_имм рдикс, 1
вызов_системы
; Остаток — продолжаем
переместить р8, рдикс
меньше_100:
; Делим на 10
сравнить_с р8, 10
переход_если_меньше меньше_10
переместить раикс, р8
переместить_имм рдикс, 0
переместить_имм рсикс, 10
разделить рсикс
; Выводим десятки
прибавить_непосредственно раикс, 0x30
сохранить [буфер], раикс
переместить_имм раикс, 1
переместить_имм рдиай, 1
переместить_имм рсиай, буфер
переместить_имм рдикс, 1
вызов_системы
переместить р8, рдикс
меньше_10:
; Выводим единицы
прибавить_непосредственно р8, 0x30
сохранить [буфер], р8
переместить_имм раикс, 1
переместить_имм рдиай, 1
переместить_имм рсиай, буфер
переместить_имм рдикс, 1
вызов_системы
; Перевод строки
переместить_имм раикс, 1
переместить_имм рдиай, 1
переместить_имм рсиай, nl
переместить_имм рдикс, 1
вызов_системы
; exit(0)
переместить_имм раикс, 60
переместить_имм рдиай, 0
вызов_системы
.данные
буфер:
.байт 0, 0, 0, 0, 0, 0, 0, 0
nl:
.байт 0x0A