plm_a01.asm
来自「在伟福环境下实现PLM51调用ASM51范例」· 汇编 代码 · 共 133 行
ASM
133 行
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 + =
减小字号Ctrl + -
显示快捷键?