Bytebeat

From Noisebridge
Revision as of 20:14, 19 February 2012 by MCT (talk | contribs) (Created page with ' ; noise.asm -- just fooling around :-) ; mct and leif, ; Sun Feb 19 19:08:13 PST 2012 ; ; Build with: ; ; nasm -felf32 noise.asm ; ld -melf_i386 -o noise …')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
; noise.asm -- just fooling around :-)
; mct and leif, ; Sun Feb 19 19:08:13 PST 2012
;  
; Build with:
;  
;       nasm -felf32 noise.asm
;       ld -melf_i386 -o noise noise.o
;
; Run with:
;
;        ./noise | aplay


global _start
section .data
section .bss
        var:    resb 1  ; one bye variable
section .text
        ; f(x) = (x >> 10 ^ x>>((x>>13)%4)) % 256
        _start: mov esi, 0
                ;int 3 
        .loop: 
                mov edi, esi
                shr edi, 13 ; edi := x >> 13
                mov eax, edi
                cwd    
                mov bx, 4
                div bx  ; dx := (x >> 13) % 4
                mov eax, esi
                mov cx, dx
                shr eax, cl   ; eax := x >> ((x >> 13) % 4)
                mov edi, esi
                shr edi, 10   ; edi := x >> 10
                xor eax, edi
                mov [var], al
                mov eax, 4      ; sys_write
                mov ebx, 1      ; stdout
                mov ecx, var    ; buffer
                mov edx, 1      ; length
                int 80h         ; syscall
                inc esi
                jmp .loop