2022-01-16 08:26:54 +00:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
#include "config.h"
|
|
|
|
#endif
|
2022-01-26 20:19:39 +00:00
|
|
|
.code16
|
2022-01-16 08:26:54 +00:00
|
|
|
.global _start
|
|
|
|
.section .text
|
|
|
|
_start:
|
2022-01-26 21:24:24 +00:00
|
|
|
cli
|
|
|
|
xor %ax, %ax
|
|
|
|
mov %ax, %ss
|
|
|
|
mov %ax, %ds
|
|
|
|
mov %ax, %es
|
|
|
|
mov %ax, %fs
|
|
|
|
mov %ax, %gs
|
|
|
|
mov $0x2000, %sp
|
|
|
|
|
2022-01-26 20:19:39 +00:00
|
|
|
mov $0x02, %ah
|
|
|
|
mov $1, %al /* Sectors count */
|
|
|
|
mov $0x80, %dl /* Drive */
|
|
|
|
mov $0, %ch /* Cylinder */
|
|
|
|
mov $0, %dh /* Head */
|
|
|
|
mov $2, %cl /* Cylinder and sector */
|
|
|
|
mov $0x7e00, %bx /* Address */
|
|
|
|
int $0x13
|
|
|
|
|
2022-01-16 08:26:54 +00:00
|
|
|
mov $0x0E, %ah
|
|
|
|
mov $'H', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'e', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'l', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'l', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'o', %al
|
|
|
|
int $0x10
|
|
|
|
mov $' ', %al
|
|
|
|
int $0x10
|
2022-01-26 20:19:39 +00:00
|
|
|
mov $'f', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'r', %al
|
2022-01-16 08:26:54 +00:00
|
|
|
int $0x10
|
|
|
|
mov $'o', %al
|
|
|
|
int $0x10
|
2022-01-26 20:19:39 +00:00
|
|
|
mov $'m', %al
|
2022-01-16 08:26:54 +00:00
|
|
|
int $0x10
|
2022-01-26 20:19:39 +00:00
|
|
|
mov $' ', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'S', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'t', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'a', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'g', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'e', %al
|
|
|
|
int $0x10
|
|
|
|
mov $' ', %al
|
2022-01-16 08:26:54 +00:00
|
|
|
int $0x10
|
2022-01-26 20:19:39 +00:00
|
|
|
mov $'1', %al
|
2022-01-16 08:26:54 +00:00
|
|
|
int $0x10
|
|
|
|
mov $'!', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'\r', %al
|
|
|
|
int $0x10
|
|
|
|
mov $'\n', %al
|
|
|
|
int $0x10
|
2022-01-26 20:19:39 +00:00
|
|
|
|
|
|
|
ljmp $0, $0x7e00
|
|
|
|
|
2022-01-16 08:26:54 +00:00
|
|
|
_loop:
|
2022-01-26 20:19:39 +00:00
|
|
|
cli
|
|
|
|
hlt
|
2022-01-16 08:26:54 +00:00
|
|
|
jmp _loop
|