#/* vim: set ft=asm : */ .section .macinfo .ascii "KOSMACROS 1.0.0" .align 8 .ascii "LICENSE: C0" .align 8 .section .text /* REM Vstupy pre SYSCALL instrukciu rax = syscall num rdi = arg1 rsi = arg2 rdx = arg3 rcx = arg4 */ .macro progend x:req # Exit mov $60,%rax .ifc \x,$0 xor %rdi,%rdi .else mov \x,%rdi .endif syscall .endm .macro mconout stringarg:req # conout = ConsoleOut .section .rodata 1: .ascii "\stringarg" .ascii "\n\x00" 2: .section .text mov $1, %rax mov $1, %rdi mov $1b, %rsi mov $(2b-1b), %rdx syscall .endm .macro mconin addr:req, nb:req mov $0, %rax mov $1, %rdi mov \addr, %rsi mov \nb, %rdx syscall .endm .macro mdltx addr:req xor %rcx, %rcx xor %rdx, %rdx mov \addr, %rsi 1: movb (%rsi), %cl inc %rsi inc %rdx cmp $0, %cl jne 1b mov %rdx, %rax # vysledok do RAX (dlzka textu) .endm .macro table x:req, y:req, elesize:req .rept \y .fill \x, \elesize, 0 .endr .endm .