Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use16
- org 0x7c00
- main:
- jmp 0x0:entry
- entry:
- mov sp, 0
- mov ss, sp
- mov bx, hello_message
- call write_message
- jmp load_tail
- jmp $
- hello_message:
- db 'Hello ', 0
- recalibration_message:
- db 'Recalibrating ', 0
- shit_happened_message:
- db 'Shit happened ', 0
- load_tail:
- mov bx, recalibration_message
- call write_message
- mov ah, 00h
- mov dl, 00h
- int 013h
- jc load_tail
- mov ah, 02h
- xor al, 1
- xor ch, ch
- mov cl, 2
- xor dh, dh
- mov di, system
- mov es, di
- xor bx, bx
- int 013h
- jnc system
- mov bx, shit_happened_message
- push
- call write_message
- call print_floppy_error
- jmp $
- print_floppy_error:
- mov ah, 01h
- int 013h
- mov al, ah
- ror al, 4
- and al, 0Fh
- call print_hex
- mov al, ah
- and al, 0Fh
- call print_hex
- return:
- ret
- print_hex:
- cmp al, 9
- ja add_65
- add_60:
- add al, 030h
- jmp print
- add_65:
- add al, 040h
- sub al, 10
- print:
- call print_char
- ret
- print_char:
- mov ah, 0Eh
- int 010h
- ret
- write_message:
- mov ah, 0Eh
- ;xor bh, bh
- start:
- mov al, [bx]
- or al, al
- jz end
- push bx
- xor bx, bx
- int 10h
- pop bx
- inc bx
- jmp start
- end:
- ret
- gdtr:
- dw 0, 0
- dw 0, 0
- dw 0FFFFh, 0000h
- db 0h, 09Ah, 0C0h, 0
- dw 0FFFFh, 0000h
- db 0h, 092h, 0CFh, 0
- padding:
- times 510-$+$$ db 0
- db 055h
- db 0AAh
- system:
- mov bx, second_hello_message
- call write_message
- second_hello_message:
- db 'Second hello', 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement