53 lines
1.0 KiB
NASM
53 lines
1.0 KiB
NASM
; 实验九 - 字符串显示程序
|
|
; 功能: 使用INT 10H的13H功能在屏幕上显示字符串
|
|
; 模式: 文本模式 80x25 彩色
|
|
|
|
.MODEL SMALL
|
|
.DATA
|
|
MSG DB 'Hello, BIOS Interrupt!', 0DH, 0AH, '$'
|
|
CRLF DB 0DH, 0AH, '$'
|
|
|
|
.CODE
|
|
.STARTUP
|
|
; 设置数据段
|
|
MOV AX, @DATA
|
|
MOV DS, AX
|
|
|
|
; 设置光标位置 (0, 0)
|
|
MOV AH, 02H
|
|
MOV BH, 0
|
|
MOV DH, 0 ; 行
|
|
MOV DL, 0 ; 列
|
|
INT 10H
|
|
|
|
; 使用INT 10H的13H功能显示字符串
|
|
MOV AH, 13H
|
|
MOV AL, 01H ; 字符串包含属性,字符跟随属性
|
|
MOV BH, 0 ; 页码
|
|
MOV BL, 0FH ; 前景色: 白色
|
|
MOV CX, 24 ; 字符串长度
|
|
LEA BP, MSG ; 字符串地址
|
|
INT 10H
|
|
|
|
; 在第二行显示另一条消息
|
|
MOV AH, 02H
|
|
MOV BH, 0
|
|
MOV DH, 1
|
|
MOV DL, 0
|
|
INT 10H
|
|
|
|
MOV AH, 13H
|
|
MOV AL, 01H
|
|
MOV BH, 0
|
|
MOV BL, 0AH ; 前景色: 浅绿色
|
|
MOV CX, 14
|
|
LEA BP, MSG+24
|
|
LEA BP, CRLF
|
|
INT 10H
|
|
|
|
; 等待按键
|
|
MOV AH, 01H
|
|
INT 21H
|
|
|
|
.EXIT
|
|
END |