Simple CPUID, I also experimented with a version using an extra buffer variable and printf. It may not be much to others but I'm learning!


section .data
    buffer:         db  "CPU Vendor ID: XXXXXXXXXXXX", 10, 0
    bufferlen:      equ     $ - buffer

section .text
    global _start

    mov     eax, 0          ; "Get maximum supported standard level and vendor ID string"
    CPUID               ; Call CPUID
    mov     [buffer+15], ebx        ; Move 4 bytes from ebx to buffer+15
    mov     [buffer+19], edx        ; Move 4 bytes from edx to buffer+19
    mov     [buffer+23], ecx        ; Move 4 bytes from ecx to buffer+23

    mov     eax, 4          ; write syscall
    mov     ebx, 1          ; stdout
    mov     ecx, buffer             ; buffer
    mov     edx, bufferlen      ; size of buffer
    int     80h                 ; call kernel

    mov     eax, 1          ; exit syscall
    mov     ebx, 0          ; Return 0
    int     80h                 ; call kernel

(Maybe) Related posts: