Files
Operating-System/Experiment/asm-exp/实验九/graphics_display.asm
2026-06-25 00:09:09 +08:00

111 lines
1.8 KiB
NASM

; 实验九 - 图形显示程序
; 功能: 设置图形模式并画线
; 模式: 图形模式 320x200 256色
.MODEL SMALL
.DATA
MSG DB 'Press any key to exit...', '$'
.CODE
.STARTUP
; 设置图形模式 13H (320x200x256色)
MOV AH, 00H
MOV AL, 13H
INT 10H
; 画一条红色水平线 (y=50, x从20到100)
MOV CX, 20 ; 起始X
MOV DX, 50 ; Y坐标
LINE1:
MOV AL, 0FCH ; 红色
MOV AH, 0CH ; 画点功能
INT 10H
INC CX
CMP CX, 100
JNE LINE1
; 画一条绿色垂直线 (x=150, y从30到90)
MOV CX, 150 ; X坐标
MOV DX, 30 ; 起始Y
LINE2:
MOV AL, 3FH ; 绿色
MOV AH, 0CH
INT 10H
INC DX
CMP DX, 90
JNE LINE2
; 画一条蓝色斜线
MOV CX, 200
MOV DX, 100
LINE3:
MOV AL, 9FH ; 蓝色
MOV AH, 0CH
INT 10H
INC CX
INC DX
CMP CX, 260
JNE LINE3
; 画一个黄色矩形
MOV CX, 30
MOV DX, 120
RECT_LOOP:
MOV AL, 0EEH ; 黄色
MOV AH, 0CH
INT 10H
INC CX
CMP CX, 130
JNE RECT_LOOP
MOV CX, 30
MOV DX, 150
RECT_LOOP2:
MOV AL, 0EEH
MOV AH, 0CH
INT 10H
INC CX
CMP CX, 130
JNE RECT_LOOP2
MOV CX, 30
MOV DX, 120
RECT_LOOP3:
MOV AL, 0EEH
MOV AH, 0CH
INT 10H
INC DX
CMP DX, 151
JNE RECT_LOOP3
MOV CX, 129
MOV DX, 120
RECT_LOOP4:
MOV AL, 0EEH
MOV AH, 0CH
INT 10H
INC DX
CMP DX, 151
JNE RECT_LOOP4
; 显示提示信息
; 先切换回文本模式
MOV AH, 00H
MOV AL, 03H
INT 10H
LEA DX, MSG
MOV AH, 09H
INT 21H
; 等待按键
MOV AH, 00H
INT 16H
; 返回文本模式
MOV AH, 00H
MOV AL, 03H
INT 10H
.EXIT
END