Enviado em 02/01/2014 - 11:51h
;--------------------------------------------------------------------
;
; A simple example using only SDL.
;
; USAGE:
; asmi test.asm
;
; BY: gokernel - gokernel@hotmail.com
;
;--------------------------------------------------------------------
library SDL ; in windows: SDL.dll
library libSDL ; in linux: libSDL.so
import SDL_Init
import SDL_SetVideoMode
import SDL_FillRect
import SDL_Flip
import SDL_PollEvent
import SDL_Delay
import SDL_Quit
long i
char *ev
char *screen
char *r ; SDL_Rect: short(x,y,w,h) sizeof 8
.S_count "mouse pos: %d %d\n"
;// <<<<< START >>>>>
push %ebp ;// index: 0
mov %esp,%ebp
sub $16,%esp ;// set to 4 arguments
movl $100,(%esp) ;// ev = malloc(100);
call malloc
mov %eax,ev
movl $8,(%esp) ;// r = malloc(8);
call malloc
mov %eax,r
mov r,%eax ; // r->x = 100 ...
movw $100,(%eax) ; short
movw $100,2(%eax)
movw $100,4(%eax)
movw $100,6(%eax)
movl $32,(%esp)
call SDL_Init
movl $0,12(%esp)
movl $32,8(%esp)
movl $600,4(%esp)
movl $800,(%esp)
call SDL_SetVideoMode
mov %eax,screen
movl $16744990,8(%esp) ;// color orange
mov r,%eax
mov %eax,4(%esp)
mov screen,%eax
mov %eax,(%esp)
call SDL_FillRect ;// SDL_FillRect (screen, r, 16744990);
mov screen,%eax
mov %eax,(%esp)
call SDL_Flip
label_top: ;//<<<<<<< main loop >>>>>>>
mov ev,%eax ;// if (SDL_PollEvent(ev)) {
mov %eax,(%esp)
call SDL_PollEvent
test %eax,%eax
je label_ok_event
;------------------- {
mov ev,%eax ; // printf("mouse pos: %d %d\n", ev->x, ev->y );
movzwl 6(%eax),%edx
mov %edx,8(%esp) ; // ev->y
;;;;; mov ev,%eax ; // NOT NEED: %eax not changed
movzwl 4(%eax),%eax
mov %eax,4(%esp) ; // ev->x
mov S_count,%eax
mov %eax,(%esp) // S_count: "mouse pos: %d %d\n"
call printf
; //** test event: SDL_KEYUP = 3
mov ev,%eax
cmpb $3,(%eax) ;// compare byte: if (ev->type == 3) {
jne label_key
jmp label_end
label_key:
;------------------- }
label_ok_event:
movl $10,(%esp)
call SDL_Delay
jmp label_top ;//<<<<<<< goto the top of main loop >>>>>>>
label_end:
call SDL_Quit
call word
leave
ret
label_fim:
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
VMs e Interfaces de Rede desapareceram (12)
Instalação do drive do adaptador wiffi (7)