1
0
Fork 0
mirror of https://github.com/tailix/loadwarka.git synced 2024-11-11 13:50:54 -05:00
loadwarka/src/x86_stage2.S

63 lines
1.3 KiB
ArmAsm
Raw Normal View History

2022-01-26 16:52:30 -05:00
/*
2022-01-26 17:43:18 -05:00
Copyright (c) 2008-2009 Micah Elizabeth Scott
2022-01-26 16:52:30 -05:00
Copyright (c) 2022 Alex Kotov <kotovalexarian@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
2022-01-26 15:19:39 -05:00
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
2022-01-26 17:43:18 -05:00
2022-01-26 18:03:47 -05:00
#include "x86_common.h"
2022-01-26 17:43:18 -05:00
2022-01-26 15:19:39 -05:00
.code16
.global _start
.section .text
2022-01-26 18:16:14 -05:00
_start:
ljmp $0, $STAGE2_ADDR(main)
2022-01-26 17:43:18 -05:00
2022-01-26 19:21:22 -05:00
.align 4
size: .word _end - _start
2022-01-26 18:16:14 -05:00
hello: .string "Hello stage 2!\r\n"
2022-01-26 17:43:18 -05:00
2022-01-26 18:03:47 -05:00
main:
mov $STAGE2_ADDR(hello), %si
2022-01-26 17:43:18 -05:00
call print_str
2022-01-26 15:19:39 -05:00
hang:
2022-01-26 15:19:39 -05:00
cli
hlt
jmp hang
2022-01-26 17:43:18 -05:00
do_ret:
ret
print_char:
mov $0x0E, %ah
mov $0x0001, %bx
int $0x10
jmp do_ret
print_str:
lodsb
test %al, %al
jz do_ret
call print_char
jmp print_str
2022-01-26 19:21:22 -05:00
_end: