Paste: CODE

Author: codeXXXX
Mode: assembly-x86
Date: Sun, 19 Jan 2014 03:37:33
Plain Text |
BITS 16

; seta o segmento de dados
mov ax, 0x07C0
mov ds, ax

; entra no Mode 13h
mov ah, 0x00
mov al, 0x13
int 0x10

; cor do caractere a imprimir
mov bl, 47

; chama print para imprimir msg1
mov si, msg1
call print

; seta cor do caractere, mensagem a imprimir
; e chama print novamente
mov bl, 23
mov si, msg2
call print

; loop infinito
jmp $


print:
; estes valores são usados pelo interrupt 0x15
; para atrasar a execução
mov cx, 1
mov dx, 00
_repeat:
; carrega um caractere em al e retorna caso este
; seja igual a zero
lodsb
cmp al, 0
je _return

; atrasa a execução
mov ah, 0x86
int 0x15

; imprime o caractere
mov ah, 0x0E
int 0x10

; repete
jmp _repeat

_return:
ret

msg1:
db 'Feliz Aniversario, s0n1c-', 13, 10, 0

msg2:
db 'by xsrv', 0

times 510-($-$$) db 0
dw 0xAA55

New Annotation

Summary:
Author:
Mode:
Body: