📄 test1.asm
字号:
;***USER EQUATES***
LED1 EQU 01
LED2 EQU 02
LED3 EQU 03
LED4 EQU 04
LED5 EQU 05
LED6 EQU 06
;
; Base Page of r/w memory (DATA) at 00
DATA EQU 00
; Base of where IO devices (IO) begin
IO EQU 04
CODE EQU 810
START EQU FF0
;
;
ORG FF0
;
; Jump from reset point to where user code belongs
LDI M, 08
LDI X, 10
JMP X
;
ORG 810
;
; Load FF into A and store at LED1's address
LDI A, FF
LDI M, IO
LDI X, LED1
STRL [M,X], A
; Setup registers for exchanges
LDI A, 25
LDI B, 13
LDI M, 42
LDI X, 07
; Test exchanges
XCHG A, B
XCHG A, M
XCHG B, X
; Test arithmetic (no carries)
LDI A, 01
LDI B, 02
ADC A, B
ADC A, A
SBC A, B
; Test arithmetic w/ carry and test branch on carry
LDI A, F0
ADC A, A
LDI A, F0
LDI B, 23
ADC A, B
BC #CARRY
; If no carry then return
RET
; If carry then continue
#CARRY
; Test for borrow
LDI A, 02
LDI B, F3
SBC A, B
; Test for zero flag on arithmetic instructions
LDI A, 00
LDI B, 00
ADC A, B
ADC A, A
SBC A, B
LDI X, FF
INC X
LDI B, 01
DEC B
; Test brach on zero
BZ #ZERO
; If not zero
RET
; If zero then continue
#ZERO
; Test clear and NOP instructions
CLR X
CLR B
CLR A
NOP
; Test remaining branch instructions
BRA #CONTINUE
RET
#CONTINUE
ADC A, B
BNC #NOCARRY
RET
#NOCARRY
LDI A, 01
ADC A, B
BNZ #NOTZERO
RET
#NOTZERO
; Test logical operations
CMP A, B
AND A, B
OR A, B
XOR A, B
; Test long load
ORG C00
LDI A, 45
LDI M, 05
LDI X, 00
STRL [M,X], A
; Finish
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -