;; (C) David Vajda ;; i586/AMD64 CPUID MMX in One ;; 2025-04-21 global _start section .data op1mmx: db "aaaa", "aaaa", 10, 13 op2mmx: db 0, 1, 2, 3, 4, 5, 6, 7 cpuidstr: db "0000", "0000", "0000", 10, 13 section .text _start: movq xmm1, [op1mmx] movq xmm2, [op2mmx] paddb xmm1, xmm2 movq [op1mmx], xmm1 mov ecx, op1mmx mov edx, 0x0a mov ebx, 0x01 mov eax, 0x04 int 0x80 paddw xmm1, xmm2 movq [op1mmx], xmm1 mov ecx, op1mmx mov edx, 0x0a mov ebx, 0x01 mov eax, 0x04 int 0x80 mov eax, 0x00 cpuid mov [cpuidstr+0], ebx mov [cpuidstr+4], edx mov [cpuidstr+8], ecx mov ecx, cpuidstr mov edx, 14 mov ebx, 0x01 mov eax, 0x04 int 0x80 mov eax, 0x01 mov ebx, 0x00 int 0x80