SECTION .textglobal _start_start:xor al, al ; strlen(esp + 4)mov ecx, 255mov edi, [esp + 4] ; edi now points to argv[0]repnz scasbmov byte [edi - 1], 0x0A ; replace terminating null with newlinemov edx, edimov ecx, [esp + 4] ; ecx now points to argv[0] + "\n"sub edx, ecx ; edx is now strlen(esp + 4) + 1 (because newline)mov eax, 4 ; sys_write 32-bit ABImov ebx, 1 ; to stdoutint 0x80mov eax, 1 ; sys_exit 32-bit ABImov ebx, 0 ; no errorint 0x80