No se me da tan mal asm, pensé que era mas complejo, intentar configurar vscode por otra parte, fué un parto grande.
.intel_syntax noprefix
.section .rodata
END = 100
STEP = 3
.section .data
line: .ascii " \n"
line_len = . - line
buf_len = line_len * END
buf_ptr: .quad buffer
.section .bss
buffer: .skip buf_len
.section .text
.global _start
.type _start, @function
_start:
xor r12, r12
loop_start:
cmp r12, END
ja loop_end
mov rdi, r12
lea rsi, [line + 1]
call int_to_ascii
imul rax, r12, line_len
lea rsi, [line]
lea rdi, [buffer + rax]
mov rcx, line_len
cld
rep movsb
lea rax, line
mov byte ptr [rax], ' '
mov byte ptr [rax + 1], ' '
add r12, STEP
jmp loop_start
loop_end:
mov rax, 1
mov rdi, 1
lea rsi, [buffer]
mov rdx, buf_len
syscall
mov rax, 60
xor rdi, rdi
syscall
.size _start, . - _start
.global int_to_ascii
.type int_to_ascii, @function
int_to_ascii:
c2a_loop:
xor rdx, rdx
mov rax, rdi
mov r8, 10
div r8
add rdx, '0'
mov [rsi], dl
dec rsi
mov rdi, rax
cmp rdi, 0
ja c2a_loop
ret
.size int_to_ascii, .-int_to_ascii