SMS Derfflinger
Just for fun.
首页
文章
标签
分类
关于
Lec11-13 Instruction Formats
最近更新:2025-01-26
|
字数总计:324
|
阅读估时:1分钟
|
阅读量:
次
intro
电线 -> 二进制编码
R-Format
用于逻辑或算数的寄存器到寄存器的指令
格式:
R-format的opcode都为0110011(6位到0位)
funct7+funct3决定运行哪种指令(例如add)
I-Format
与寄存器和立即数有关的指令和load
Load
与I类指令格式相同,opcode不同
S-format
只有store指令
B-format
分支指令
E.g., beq x1, x2, Label
branch offset by 2 bytes,PC = PC + immediate * 4
立即数不必保存最低有效位,因为PC按字节对的倍数增加,立即数最低位始终为0
U-format Long immediates
在跳转位置在正负1024条指令之外时,单条分支指令做不到
lui:将一个立即数的高20位加载进寄存器
addi是按符号位扩展的,与lui搭配有时会出错;实际使用时使用li就行
J-format
跳转,只有jal,j伪指令也使用jal
jalr伪指令使用了I-format
解释器与编译器
解释器:
速度慢
编写简单
可以向后兼容
编译器
速度快
复杂
compiler
编译器将.c文件编译为.s汇编文件,可能包含伪指令
assembler
汇编器将伪指令替换为指令,将.s文件生成为.o目标文件
替换伪指令:
2024-08-30
该篇文章被 Derfflinger
打上标签:
Assembly
RISC-V
归为分类:
CS61C