Welcome to HBH! If you have tried to register and didn't get a verification email, please using the following link to resend the verification email.

ASM Print - Assembly Code Bank


ASM Print
Just a program that prints out the first argument
                section .text:
        global mystrlen ; int mystrlen(char* buf);
        global myprint   ; void myprint(char* buf);
        global _start      ; int _start(int argc, char* argv[])

; esp+4 = buf
mystrlen:
        xor eax,eax
        dec eax
        mov ebx,[esp+4]
        strloop:
                inc eax
                cmp [ebx+eax],byte 0
                jne strloop
        ret
; esp+4 = buf
myprint:
        mov ecx,[esp+4]
        push ecx
        call mystrlen
        mov edx,eax
        mov eax,4
        mov ebx,1
        int 80h
        pop ecx
        ret
_start:
        pop eax ; argc
        cmp eax,2 ; if(argc != 2) { end(); }
        jne end
        pop eax ; argv[0] - program name
        pop eax ; argv[1] - first argument
        push eax
        call myprint ; myprint(argv[1]);
        end:
                mov eax,1
                mov  ebx,0
                int 80h ; return 0
            
Comments
binary_man's avatar
binary_man 10 years ago

?