• 3.141516
    2022-08-20 来自湖北
    Java 虚拟机的指令集也是大同小异,不同于 CPU 基于寄存器的架构,JVM 是基于栈的。从寄存器、内存的操作,转变为局部变量表、操作数栈的操作。

    作者回复: 正确 的

    
    3
  • your problem?
    2022-08-25 来自湖北
    不知道有没有同学跟我是一样的问题,其实原理认认真真看也大概能明白,但是有很多的名词和细节都需要去查,我个人不是学计算机出身的,底层的东西都是自己后面自学的,之前看过极客上另一位讲计算机原理的老师,他的课程没有详细的讲到CPU指令的部分,像我这种情况老师是建议继续先跟着学习吗,还是先去补充相关知识呢

    作者回复: 先过一遍

    共 6 条评论
    2
  • Abcd
    2022-08-14 来自湖北
    所以思考题的答案是什么?评论区的回答不在电子上啊,老师问的是有了U指令,为什么还需要J指令,两者除了高20位的立即数的表达方式不同外,指令格式完全相同。难道是想表达 U是高20bit的意思,J是低20bit的意思?那也没有必要调整立即数的比特顺序啊。还是说这个是为了尽量和其他指令格式保持一致?节省RTL工程师的工作量?

    作者回复: U型指令是和I型指令相对应的J型指令和B型相对应,都是为了更多的bit对齐

    
    1
  • skyline
    2022-08-05 来自湖北
    “JAL 指令的执行过程是这样的。首先,它会把 20 位立即数做符号位扩展,并左移一位,产生一个 32 位的符号数” 请问为啥要左移一位呢?

    作者回复: 2字节对齐

    共 2 条评论
    1
  • 王彬
    2023-01-10 来自北京
    "要满足现代操作系统和应用程序的基本运行,RV32G 指令集或者 RV64G 指令集就够了,注意 RV32G 指令集或者 RV64G 指令集,只有寄存器位宽和寻址空间大小不同,这些指令按照功能可以分为如下几类。" 应该是RV32I和RV64I,一个字母的错误会给小白很大的困扰

    编辑回复: 收到,已经和老师确认过了,这里文字没有问题哦。G 是通用的意思 ,而I 只是整数指令集,G包含I。

    共 3 条评论
    
  • 小傅
    2022-11-15 来自湖北
    “它会把 20 位立即数做符号位扩展,并左移一位,产生一个 32 位的符号数” 这句话怎么理解?

    作者回复: 一个立即数只有20位 用它的第19位 填充20~31位 然后把这个32位数据(0~31位)左移一位

    
    
  • 秋天
    2022-09-21 来自湖北
    老师 请教一下,寄存器的作用时什么 用来执行指令对吧? 那操作数和操作码又怎么理解呢?操作码可以理解为指令吗?这块有点晕

    作者回复: 寄存器是临时储存数据的 用于计算的

    
    
  • 郝海波
    2022-09-09 来自湖北
    JAL 指令的执行过程是这样的。首先,它会把 20 位立即数做符号位扩展,并左移一位,产生一个 32 位的符号数。然后,将该 32 位符号数和 PC 相加来产生目标地址(这样,JAL 可以作为短跳转指令,跳转至 PC±1 MB 的地址范围内) 这里不太懂 20位左移1位不是21位吗 还有最后的PC +1MB 这个!MB怎么来的

    作者回复: 1 << 21 等于 多少 你不懂这个MB是什么 0x100000 字节 你知道吗

    共 2 条评论
    
  • vampire
    2022-08-24 来自湖北
    简化译码电路

    作者回复: 算是一个点

    
    
  • 让我们看云去
    2022-08-22 来自湖北
    老师,请教个问题:imm不是按照寄存器的bit从右往左连续分配,这样做的原因是啥?麻烦举个例子说明下帮助理解

    作者回复: 指令编码 和 指令 译码器要求

    
    