-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQ9.asm
77 lines (51 loc) · 1.11 KB
/
Q9.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
;org endereço -> ajusta todas as suas referencias à endereços. NAO RETIRAR.
org 0x7c00
;no modo real não há sections, o código começa a ser executado no começo do arquivo
;só estão disponíveis os registradores de 16bits.
jmp 0x0000:start ;mais sobre segment:offset na aula do projeto do bootloader.
msg db " (Programa encerrado com sucesso!)"
msgL equ $-msg
start:
; nunca se esqueca de zerar o ds,
; pois apartir dele que o processador busca os
; dados utilizados no programa.
xor ax, ax
mov ds, ax
;Início do seu código
xor cx,cx
xor si,si
xor bx,bx
loop:
mov ah,0h
int 16h
mov ah,0Eh
int 10h
push ax
cmp al, 13 ;verifica enter
je enter
inc si
jmp loop
enter:
mov al, 10
mov ah, 0Eh
int 10h
mov al, 13
mov ah, 0Eh
int 10h
jmp fim
fim:
pop ax
mov ah,0Eh
int 10h
dec si
cmp si,0
je acabou
jmp fim
acabou:
pop ax
mov ah,0Eh
int 10h
times 510-($-$$) db 0 ; preenche o resto do setor com zeros
dw 0xaa55 ; coloca a assinatura de boot no final
; do setor (x86 : little endian)
;seu código pode ter, no máximo, 512 bytes, do org ao dw 0xaa55