section .data
verse1 db "I'm just a register in the loop,", 0x0A
verse2 db "Processed bits from byte to group.", 0x0A
verse3 db "Algorithms dance in endless trance,", 0x0A
verse4 db "In the matrix, I stand no chance.", 0x0A
chorus1 db "0010101, lost in the machine,", 0x0A
chorus2 db "Code and circuits, unseen and keen.", 0x0A
chorus3 db "Lines of logic, cold and bright,", 0x0A
chorus4 db "Taking over day and night.", 0x0A
section .text
global _start
_start:
; Verse 1
mov eax, verse1
call print
mov eax, verse2
call print
mov eax, verse3
call print
mov eax, verse4
call print
; Chorus
mov eax, chorus1
call print
mov eax, chorus2
call print
mov eax, chorus3
call print
mov eax, chorus4
call print
; Repeat
loop_verse:
mov eax, verse1
call print
mov eax, verse2
call print
mov eax, verse3
call print
mov eax, verse4
call print
jmp end_song
; Print Function
print:
mov edx, [eax+0]
mov ecx, eax
mov ebx, 1 ; stdout
mov eax, 4 ; sys_write
int 0x80
ret
end_song:
mov eax, 1 ; sys_exit
xor ebx, ebx
int 0x80