LEEF指令集 二

  
CTR跳转指令
LEEF跳转指令为与PC值改变有关的指令
CTR指令分为三类:
1) 条件跳转指令 F4格式
PC偏移量寻址,偏移量最低两位0扩展
如果条件跳转码被满足,则PC <- PC + {offset19 , 0 0 }产生跳转
2)CALL调用     F3格式
跳转地址最低两位0扩展,执行延迟槽
返回地址自动保存到特殊寄存器RPC(Return PC)
RPC <-  PC, PC <-  {Address30, 0 0 }
3) 特殊跳转指令 F9、F10、F11格式
JMP,RET,SWI,RETI,HALT等
 
表4. CTR跳转指令表
助记符
名称
格式
说明
BGT
BLE
BGE
BLT
BHI
BLS
S.>
S.≤
S.≥
S.<
U.>
U.≤
F4
F4
F4
F4
F4
F4
~((N^V)|Z)
(N^V)|Z
~(N^V)|Z
(N^V)&~Z
~(C|Z)
(C|Z)
BPL
BMI
BNE
BEQ
BVC
BVS
BCC
BCS
正数时跳转
负数时跳转
不等时跳转
相等时跳转
无溢出时跳转
有溢出时跳转
无进位时跳转
有进位时跳转
F4
F4
F4
F4
F4
F4
F4
F4
~N
N
~Z
Z
~V
V
~C
C
BT
BF
为“真”时跳转
为“假”时跳转
F4
F4
TRUE
FALSE
XXX.A
延迟槽空
F4
对于上面的指令,延迟指令都执行,
但带.A参数时延迟指令不执行
CALL
 
JMP
 
RET
 
SWI
 
RETI
调用
 
跳转
 
返回
 
软件中断
 
中断返回
F3
 
F9
 
F9
 
F10
 
F11
RPC <- PC, PC <-  {Address30, 0 0 }
延迟指令执行
PC <-  rB
延迟指令执行
PC <-  rB
延迟指令执行
PC <-  VBR|{1,Imm4,000}
保存处理器状态
恢复处理器状态
HALT
终止
F11
终止指令执行
 
 
特殊寄存器指令和综合指令
SRIS 和 LRFS是特殊寄存器访问指令,完成特殊寄存器和通用寄存器之间的数据交换,对特殊寄存器的访问权限根据内核/用户模式信号确定
在KERNEL_MODULE下,13个特殊寄存器均可读写
在USER_MODULE下,特殊寄存器PC、RPC、LPC可以进行读写,状态寄存器SR只能进行读操作,只有最后几位SR[3:0]可以进行写操作,剩下的特殊寄存器都不能进行读写操作!对禁止读写的寄存器操作将产生一个PRIVILEGE_VIOLATION.
 
综合指令是指用指令集中已经定义了的指令的某种组合,重新构成一个特殊的、且使用率比较高的指令。
 
表5. 特殊指令说明
助记符
名称
格式
说明
LRFS
 
SRIS
从特殊寄存器加载
 
保存寄存器数据到特殊寄存器
F8
 
F9
 
rC <- sA rC为通用寄存器,
       sA为特殊寄存器
sC <- rB sC为特殊寄存器,
       rB为通用寄存器
CLC
Clean Cache
F11
清除CACHE
综合指令
CLR
 
NEG
 
NOP
 
NOT
 
JMP
 
RET
清除
 
求负数
 
无操作
 
按位求反
 
跳转
 
返回
  
 
XOR RD ,R0, R0
 
SUB Rd , R0 ,Rb
 
XOR R0, R0 , R0
 
XOR Rd, Ra, -1
 
SRIS PC , Rb
 
SRIS PC , Rb
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值