汇编语言
assume cs:code,ss:stack
stack segment
db 128 dup (0)
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128
call copy_boot
;设置CS:IP为0:7e00h
mov ax,0
push ax
mov ax,7e00h
push ax
retf
mov ax,4c00h
int 21h
;org 7e00h
;引导程序
boot:
jmp boot_begin
func0 db 'Hk_Mayfly----XIUXIUXIU~',0
func1 db '1) reset pc',0
func2 db '2) start system',0
func3 db '3) clock',0
func4 db '4) set clock',0
;相减得到的是标号的相对位置,+7e00h得到的绝对位置
func_pos dw offset func0-offset boot+7e00h
dw offset func1-offset boot+7e00h
dw offset func2-offset boot+7e00h
dw offset func3-offset boot+7e00h
dw offset func4-offset boot+7e00h
time db 'YY/MM/DD hh:mm:ss',0
cmos db 9,8,7,4,2,0
clock1 db 'F1----change the color ESC----return menu',0
clock2 db 'Please input Date and Time,(YY MM DD hh mm ss):',0
change db 12 dup (0),0
jz指令:https://zhidao.baidu.com/question/564008138.html
int 16的1号程序:https://zhidao.baidu.com/question/511189643.html