📄 plm_a01.asm
字号:
public Refresh
public ClrScr
public SetColor
public SetBackGround
public GotoXY
public GetXY
public WriteChar
public WriteStr
public KeyPressed
public ReadKey
public PutPixel
public LineH
bits segment bit
bytes segment data
proc segment code
public ?SetColor?BYTE
public ?SetBackGround?BYTE
public ?GotoXY?BYTE
public ?WriteChar?BYTE
public ?WriteStr?BYTE
public ?PutPixel?BYTE
public ?LineH?BYTE
public ?PutPixel?BIT
public ?LineH?BIT
rseg bits
?PutPixel?BIT:
?LineH?BIT:
dbit 1
rseg bytes
?SetColor?BYTE:
?SetBackGround?BYTE:
?GotoXY?BYTE:
?WriteChar?BYTE:
?WriteStr?BYTE:
?PutPixel?BYTE:
?LineH?BYTE:
ds 8
rseg proc
Refresh:
nop ; refresh screen
ret
ClrScr:
nop ; clear screen
ret
SetColor:
mov a, ?SetColor?BYTE
nop ; set display color
ret
SetBackGround:
mov a, ?SetBackGround?BYTE
nop ; set background color
ret
GotoXY:
mov a, ?GotoXY?BYTE
mov b, ?GotoXY?BYTE+1
nop ; goto (X, Y)
ret
GetXY:
nop ; get (X, Y)
mov r6, a
mov r7, b
ret
WriteChar:
mov a, ?WriteChar?BYTE
nop ; write a character on screen
ret
WriteStr:
mov dph, ?WriteStr?BYTE
mov dpl, ?WriteStr?BYTE+1
nop ; write a string on screen
ret
KeyPressed:
nop ; check is a key pressed
clr c
jz Goon1
setb C
Goon1:
ret
ReadKey:
nop ; read a key
ret
PutPixel:
mov r0, ?PutPixel?BYTE
mov r1, ?PutPixel?BYTE+1
mov r2, ?PutPixel?BYTE+2
mov r3, ?PutPixel?BYTE+3
clr a
jnb ?PutPixel?BIT, Goon2
mov a, #0ffh
Goon2:
nop ; draw a pixel on screen
ret
LineH:
mov r0, ?LineH?BYTE
mov r1, ?LineH?BYTE+1
mov r2, ?LineH?BYTE+2
mov r3, ?LineH?BYTE+3
mov r4, ?LineH?BYTE+4
mov r5, ?LineH?BYTE+5
clr a
jnb ?LineH?BIT, Goon3
mov a, #0ffh
Goon3:
nop ; draw a line
ret
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -