📄 jmp.asm
字号:
;-------------------------------------------------
; Test for jmp, jmpr, jmpa, jmps, psh, pop, ret
;-------------------------------------------------
org 0x0000
ldi r0 0xaa
ldi r1 0x55
ldi r2 0xff
add r1
jmpr al asdf
or r2
asdf:
and r2
jmpa al asdf1
sub r1
or r1
asdf1:
not r1
nop
nop
nop
ldi r5 0x3
loop1:
dec r5
jmpr ne loop1
nop
loop2:
nop
nop
nop
xor r0
jmpa ne loop2
and r1
or r1
nop
nop
psh r1
pop r1
nop
nop
nop
ldi r0 0x1a
ldi r1 0x1a
ldi r2 0x2a
ldi r3 0x3a
ldi r4 0x4a
ldi r5 0x5a
ldi r6 0x6a
ldi r7 0x7a
; jmps/ret
jmps al dummy
cmp r1
jmpa ne error
ldi r1 0x10
add r1
cmp r2
jmpa ne error
add r1
cmp r3
jmpa ne error
add r1
cmp r4
jmpa ne error
add r1
cmp r5
jmpa ne error
add r1
cmp r6
jmpa ne error
add r1
cmp r7
jmpa ne error
psh r2
psh r3
psh r4
psh r5
psh r6
psh r7
psh r1
psh r0
pop r0
cmp r7
jmpa ne error
pop r0
cmp r1
jmpa ne error
pop r0
cmp r7
jmpa ne error
pop r0
cmp r6
jmpa ne error
pop r0
cmp r5
jmpa ne error
pop r0
cmp r4
jmpa ne error
pop r0
cmp r3
jmpa ne error
pop r0
cmp r2
jmpa ne error
pmov a2 jmpaddr
jmp a2
; jmpa
jmpaddr:
ldi r0 0x00
wrps
jmpa eq error
jmpa cs error
jmpa ns error
jmpa lt error
ldi r0 0x01
wrps
jmpa ne error
jmpa gt error
ldi r0 0x02
wrps
jmpa cc error
ldi r0 0x02
wrps
jmpa cc error
nop
nop
; jmpr
ldi r0 0x00
wrps
jmpa eq error
jmpa cs error
jmpa ns error
jmpa lt error
ldi r0 0x01
wrps
jmpa ne error
jmpa gt error
ldi r0 0x02
wrps
jmpa cc error
ldi r0 0x02
wrps
jmpa cc error
nop
nop
nop
jmpr al nextjmp
finish:
nop
ldi r0 0x55
sta r0 0xffff
nextjmp:
jmpr al finish
add r1
error:
ldi r0 0xa2
sta r0 0x1234
nop
nop
; subroutine dummy
org 0x2000
dummy:
ldi r0 0x45
sta r0 0xabcd
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -