⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmp.asm

📁 这是一篇关于8位RISC CPU设计的文章
💻 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 + -