- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是《汇编语言简介》一书中关于RISC(与CISC)的引述
In MIPS, we could write procedures without using the stack. For most normal procedures, we do not have to use the stack. The availability of a large number of registers allows us to use register-based parameter passing. However, when we write recursive procedures, we have to use the stack.
最佳答案
我认为他们指的是参数传递。在大多数 RISC 机器中,参数是在寄存器中传递的,通常为此目的保留大约 6-8 个寄存器(其中一个用于返回值)。这不是强制性的,它只是约定(称为 ABI 或应用程序二进制接口(interface))。因此,如果函数的参数比寄存器少,并且这些参数足够简单以适合寄存器,则不需要额外的堆栈空间来传递这些参数。在 CISC 机器上,没有那么多用于参数的寄存器,因此 ABI 指定这些参数在堆栈上传递。
此外,在 RISC 机器中,有许多可用的临时寄存器(特别是被调用者保存的)用于存储局部变量。在 CISC 机器上,局部变量通常分配在堆栈上,而寄存器通常保留用于中间值。
关于stack - RISC 与 CISC 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11263610/
什么是RISC-V?它为什么被创建?与之前的 RISC 架构相比,它有哪些改进? (这是 StackOverflow 上 RISC-V 的 wiki。) 最佳答案 RISC-V 是一种指令集架构 (I
我有一些代码主要用 C 语言编写,可以在 HP-UX PA-RISC、HP-UX Itanium 和 Solaris SPARC 平台上编译。 到目前为止,我的 PA-RISC 机器已停产,这是不真实
我即将使用 CLINT 编写我自己的 RV32I 内核。但是,有些事情对我来说并不完全清楚。至少我在文档中找不到它。以下是特权 isa 规范对 ecall/ebreak 的说明: ECALL and
在浏览 RISC-V ISA 时,我在内存模型部分看到了一条指令(FENCE 指令)。究竟是什么意思? 最佳答案 RISC-V ISA 使用宽松的内存模型,其中一个线程执行的加载和存储顺序在另一个线程
RISC-V 当前软件权限级别未在任何 CSR 中设置。尽管如此,规范指出“尝试在没有适当权限级别的情况下访问 CSR ......引发非法指令”。那么如何实现(在硬件中)? 最佳答案 好吧,在中断上
我最近正在研究 RISC-V 32I 指令。我有一个关于 NOP 指令的问题,规范称它等于 ADDI x0, x0, 0。 但是,x0不是一个可以由程序员修改的通用寄存器。那么,为什么x0在这里充当N
我正在寻找在游戏中构建一个虚拟机,并且想知道是否有人知道任何非常简单的虚拟机(我认为 RISC/PIC 接近我想要的),通常用于嵌入式项目,例如控制机器人、电机、传感器等。我主要关心的是如果我自己编写
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
如果您正在写一本教科书,并且需要决定 CPU 设计来讨论某些问题,您会选择 RISC 还是 CISC? RISC 的优点,你知道的:更干净、更简单等等。 RISC 的缺点:我必须使用模拟器,与 x86
我没有在ISA 2.0中看到任何有关IO的信息。 RISC-V IO存储器是否已映射?是否有关于如何完成IO的规范? 我可以定义自己的方法吗? TIA。 最佳答案 是的,它是内存映射的。确切的规格仍在
你好,我正在写一个小内核来更好地理解 RISC-V。到目前为止,我设法使用 UART 并设置了一个简单的内存管理器。为了能够解析用户输入,我设置了一个中断处理程序并将其地址设置为 MTVEC。然后我在
我在哪里可以找到支持 "V" Vector Extension 的 RISC-V 模拟器? 我知道当前规范版本 0.8 是草案: This is a draft of a stable proposa
我目前正在通过 RISC-V 学习基本的汇编语言,我对遍历数组的有效方法有点困惑。 如果我们将 a0 作为指向整数数组的指针,是否足以移动到下一个元素? lw s0, 0(a0) #指向数组的指针存储
我正在寻找支持 RISC-V 向量扩展 v1.0 的 C/C++ 工具链,如官方定义 spec . Spike似乎支持 vector rvv1.0,但我找不到与之一起使用的工具链。 都不是GCC (我
故意在 RISC-V 中引发非法指令的最简单、最易读和最直接的方法是什么? 我知道根据规范,任何“全零”指令(因此 32/16 位仅零)都是“定义的非法指令”(第 12.5 节,用户规范)。但是我不知
这是《汇编语言简介》一书中关于RISC(与CISC)的引述 In MIPS, we could write procedures without using the stack. For most n
我目前正在研究具有规范版本 2.2 和特权架构版本 1.10 的 RISC-V 规范。在 RISC-V 规范的第 2 章中,提到“[...] 尽管一个简单的实现可能涵盖了八个 SCALL/SBREAK
RISC-V 汇编器中的大多数指令在源操作数之前对目标操作数进行排序,例如: li t0, 22 # destination, source li t1, 1 # d
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我正在 QEMU 中运行一个模拟的 RV64GC 内核,并试图更好地理解 RISC-V 中的虚拟内存子系统和地址转换过程。我的模拟系统使用 OpenSBI、Linux Kernal v5.5 和最小的
我是一名优秀的程序员,十分优秀!