.текст .глобал _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