mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-01-13 01:58:27 +08:00
89 lines
1.5 KiB
NASM
89 lines
1.5 KiB
NASM
|
mov ax,0xb800
|
|||
|
mov es,ax
|
|||
|
; 清屏
|
|||
|
mov cx,80*25
|
|||
|
clean:
|
|||
|
mov di,cx
|
|||
|
add di,di
|
|||
|
mov byte [es:di],''
|
|||
|
add di,1
|
|||
|
mov byte [es:di],0x0F
|
|||
|
loop clean
|
|||
|
; 显示上方白条
|
|||
|
; 移除(0,0)的S字符
|
|||
|
mov byte [es:0x00],''
|
|||
|
mov cx,80*2-1
|
|||
|
mov di,0
|
|||
|
headtitle:
|
|||
|
mov di,cx
|
|||
|
mov byte [es:di],0xF0
|
|||
|
; 写入空字符
|
|||
|
add di,di
|
|||
|
mov byte [es:di],''
|
|||
|
;inc cx
|
|||
|
;sub cx,1
|
|||
|
loop headtitle
|
|||
|
|
|||
|
mov di,0
|
|||
|
mov cx,80*2-1
|
|||
|
; 显示下方白条
|
|||
|
tailtitle:
|
|||
|
mov di,cx
|
|||
|
add di,80*2*24
|
|||
|
mov byte [es:di],0xF0
|
|||
|
; 写入空字符
|
|||
|
mov di,cx
|
|||
|
add di,di
|
|||
|
add di,80*2*24
|
|||
|
mov byte [es:di],''
|
|||
|
loop tailtitle
|
|||
|
; 在第一行写入文本 Hello World!
|
|||
|
jmp near showHeadText
|
|||
|
headText: db 'Hello World!'
|
|||
|
showHeadText:
|
|||
|
; 虽然可以简单粗暴的用 movsw,但是会出现问题
|
|||
|
mov cx,showHeadText-headText
|
|||
|
mov ax,0x7c0
|
|||
|
mov ds,ax ; 定位到汇编程序所在的内存地址
|
|||
|
showHeadTextLoop:
|
|||
|
mov dx,cx
|
|||
|
mov di,cx
|
|||
|
add di,di
|
|||
|
mov si,headText
|
|||
|
sub dx,1
|
|||
|
add si,dx
|
|||
|
; inc si
|
|||
|
; mov al,1000
|
|||
|
mov al,[ds:si]
|
|||
|
mov byte [es:di],al
|
|||
|
loop showHeadTextLoop
|
|||
|
jmp near showTailText
|
|||
|
tailText: db '2020~Now gfdgd xi'
|
|||
|
showTailText:
|
|||
|
mov cx,showTailText-tailText
|
|||
|
mov ax,0x7c0
|
|||
|
mov ds,ax
|
|||
|
showTailTextLoop:
|
|||
|
mov dx,cx
|
|||
|
mov di,cx
|
|||
|
add di,di
|
|||
|
add di,80*2*24
|
|||
|
mov si,tailText
|
|||
|
sub dx,1
|
|||
|
add si,dx
|
|||
|
mov al,[ds:si]
|
|||
|
mov byte [es:di],al
|
|||
|
loop showTailTextLoop
|
|||
|
|
|||
|
poweroff:
|
|||
|
; 跳过关机
|
|||
|
jmp near end
|
|||
|
; 关机
|
|||
|
mov ax,5307H ; 高级电源管理功能,设置电源状态
|
|||
|
mov bx,0001H ; 设备ID,1:所有设备
|
|||
|
mov cx,0003H ; 状态,3:表示关机
|
|||
|
int 15h
|
|||
|
end:
|
|||
|
times 510-($-$$) db 0
|
|||
|
db 0x55,0xaa
|