LEEF指令集 一

  
LEEF指令字长为32位;主要分为LD/ST、CTR、ALU、Special四类;LEEF处理器包含32个通用寄存器
 
LEEF指令格式
A)访存和寻址指令
 
F1: 寄存器寻址
Opcode
RC
RA
 
RB
 
F2: 偏移量间接寻址
Opcode
RC
RA
offset14
 
F3: 绝对寻址
Opcode
Address30
F4: PC间接偏移寻址
Opcode
cc
Offset19
 
B)无访存操作的指令
 
F5: 寄存器操作
Opcode
DEST
SRCA
 
SRCB
 
F6: 寄存器与立即数操作
Opcode
DEST
SRCA
imm14
 
F7: 立即数操作
Opcode
DEST
Imm19
 
F8: 特殊寄存器操作
Opcode
RC
SA
 
 
 
F9: 特殊寄存器操作
Opcode
RC
 
 
F10: 多种其他操作
Opcode
 
Imm4
 
F11: 多种其他操作
Opcode
 
 
ALU算术逻辑运算指令
ALU指令不需要存储器操作,这类指令用到3个操作数DEST、SRCA、SRCB或者DEST、SRCA、Imm14。即采用格式F5和F6。
另外,对于高位装载指令LDH,采用F7格式。
说明:
1)        14位立即数的高位用符号位Imm[13]补齐
2)        除了LDH指令外,所有ALU指令都可以使用.F参数。如果使用这个参数,计算结果的标志位会保存到标志寄存器。
 
表1. 带.F参数ALU指令的标志位的计算
标志位
名称
计算
指令分类
N
dest[31]
所有ALU指令
Z
~(|dest[31:0])
所有ALU指令
C
进位
dest[32]
~dest[32]
srcA[srcB-1]
0
ADD,ADDC,LSL
SUB,SUBC
LSR,ASR,ROT,if srcB>0
LSR,ASR,ROT,if srcB=0
V
溢出
dest[32]^dest[31]
0
ADD,ADDC,SUB,SUBC
其他
 
 
表2 ALU指令说明
助记符
名称
格式
说明
ADD
ADDC
SUB
SUBC
带进位加
带进位减
F5、F6
F5、F6
F5、F6
F5、F6
dest <- srcA + srcB
dest <- srcA + srcB + C
dest <- srcA - srcB
dest <- srcA + srcB - C
AND
OR
XOR
异或
F5、F6
F5、F6
F5、F6
dest <- srcA& srcB
dest <- srcA | srcB
dest <- srcA ^ srcB
LSL
LSR
ASR
ROT
逻辑左移
逻辑右移
算术右移
循环移动
F5、F6
F5、F6
F5、F6
F5、F6
dest <- srcA << srcB
dest <- srcA >> srcB
dest <- srcA >> srcB 高位符号扩展
dest <- srcA >>> srcB
XXX.F
.F参数
F5、F6
 
LDH
高位装载
F7
dest ß{Imm19,0…0}目的寄存器高位由Imm19替换
 
MAC存储器访问指令
LD/ST指令需要存储器操作,这类指令用到3个操作数rC、rA、rB或者rC、rA、offset14。即采用格式F1和F2。
存储器除了要访问32位字外还要能访问4个8位字节、2个16位半字,但是,为了提高效率,对地址值仅保存不带最低两位的地址值,只在需要的时候扩展上去。
 
表3. MAC指令说明
助记符
名称
格式
说明
LDU
LDU.D
LDU.B
装载无符号字
装载无符号半字
装载无符号字节
F1、F2
F1、F2
F1、F2
rC <- MEM[rA + rB]
LDS
LDS.D
LDS.B
装载有符号字
装载有符号半字
装载有符号字节
F1、F2
F1、F2
F1、F2
rC <-MEM[rA + rB]
高位扩展符号位
ST
ST.D
ST.B
存储字
存储半字
存储字节
F1、F2
F1、F2
F1、F2
rC ->MEM[rA + rB]
SWP
交换字
F1、F2
rC  <--> MEM[rA + rB]
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值