问题标签 [sll]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vhdl - VHDL:std_logic_vector 左移和右移运算符?
任何人将如何在 STD_LOGIC_VECor 上的 VHDL 中执行右移或左移...
它不起作用,为什么??
我收到错误消息:sll 在这种情况下不能有这样的操作数。但是在什么情况下可以使用它,以及如何执行我的左移?
这些是我的包括:
不包括执行我的左移操作所需的那个吗?
完整代码
assembly - MIPS 汇编 sll 指令
我对 sll 指令有疑问。sll $t1,$a0,1
$a0 持有价值 11 会给 $t1 价值 16(我在 MARS 中测试过)。
我对 $t1 的建议是 22,因为左移 11 又名 01011 会给我 10110,即十进制的 22。我在哪里做错了?
谢谢!
assembly - 为什么要在 MIP 程序集中使用 sll 等进行一些调整?
所以我有点理解命令 sll 正在做什么,因为我读到这个并且它几乎只是将所有位左移 1。我只是想知道我为什么要这样做?
我有一个班级的作业,其中有一个例子......其中 $s6 和 $s7 是数组的基地址,而 $s1/$s2 只是一些变量。
为什么要转移一点?简单来说它在做什么?我首先认为这与索引数组中的变量有关……但我不确定。
mips - MIPS 指令 sll 的正确语法是什么?
移位量应该是立即数还是存储在寄存器中的值?两者都有效吗?
我有不同的网站告诉我不同的事情,我很困惑。
根据我的研究,应该像这样使用 sll(逻辑左移)指令:
这使得 $d = $t 向左移动了 h 次。
有人告诉我 h 应该是立即数,但我想知道是否可以将寄存器用作第三个参数,并将该寄存器内的值用作移位量。这也行吗?
mips - 扩展 MIPS 数据路径以实现 SLL 和 SRL
这是数据路径:
所以这似乎是一个很常见的问题,但我似乎找不到关于如何扩展数据路径以实现 SLL 和 SRL 的任何答案。
这就是我的想法,但我不完全确定:
在寄存器文件旁边的读取数据 1 旁边需要另一个多路复用器。该多路复用器将读取数据 1 (rs) 和读取数据 2 (rt) 作为输入。如果我们不进行移位操作,它将选择读取数据 1,如果我们正在执行移位操作,它将选择 rt(因为 sll 和 srl 使用 rt,而不是 rs)。然后将其馈入 ALU。
接下来,我们需要将 Instruction[10:6](移位量)从 Instruction[15:0] 中分支出来,然后将 Instruction[10:6] 馈送到 ALU 的另一个端口。这是正确的想法吗?
arrays - 检查 MIPS 数组中零的数量
我有一个问题如下:
给定内存中的一个 32 位有符号整数数组及其一个寄存器中的长度,编写一个 MIPS 程序来计算该数组包含多少个零。假设数组从 Ox12345678 开始,并且数组的长度已经存储在 $1 中。零的个数应该存储在$2中,这个mayor一开始可能不会用零初始化。有关 MIPS 组装说明,请参阅表 1。
这是我自己的想法,但我有一个主要问题:
1)我认为如果我有子例程,我需要使用sw $ra, 4($sp)
andaddi $sp,$sp,-8
和 and从堆栈中推送然后弹出数据sw $fp, 0($sp)
。但是,使用我的程序,我有一个 break 子句,它只在某个条件下移动到子程序(如果某物是 $0)。所以我不jal
给子程序,我beq
给子程序。我怎样才能修改我的代码来做到这一点?
这是我当前的代码:
c - 关于将 C 转换为汇编语言的字长按 4 缩放的问题
我是汇编语言的初学者,所以我希望任何给我答案的人都可以解释得更具体。
问题是从 C 语言转换为汇编语言。
C代码是:
i
and k
are in $s3
and $s5
and and 数组save[]
的基数在$s6
答案就在图中。
我的误解是,为什么$S3 multiple 2^2(==4)
,然后存储到$t1
。
我在stackoverflow上查看了类似的问题,有人说“你应该把基数和索引加在一起,记住要按4来缩放字长。”
但是因为我是初学者,所以我还是一头雾水。
例如,
一个周期后,
i == 2
(in$S3
)。然后重新开始,
i == 2
乘以$S3
4,我们在这里得到 8,然后写入$t1
.
那么有一个问题,为什么是8?我认为我们需要的save[2]
不是save[8]
.
我想我可能会对价值和地址感到困惑。
另一个问题是:这些寄存器有多少$S1
位$t1
?我认为是 32 位,所以应该是 1 个字。
arrays - 有人可以解释以下 MIP 代码吗?
f,g,h,i,j == $s0-$s4。数组 A 和 B 的基地址是 $s6 和 $s7
据我了解,第一行取 f*4 的值并将其存储在 $t0 中。我被告知我们有第一行,因为数组包含 4 字节值。请解释其余部分。我知道程序正在某处访问数组,但我不理解语法,它看起来就像数组 A 的基本情况被添加到 f*4 中。谢谢。
assembly - 使用公式转移 MIPS
我正在学习 MIPS,并且来自程序编程背景,但事实证明这很困难。这是我在换档时遇到的一个问题。如果在回答它时有任何指示,将不胜感激。
假设 rt 是一个包含整数的寄存器。解释为什么指令
有投放效果
在寄存器 rd
assembly - MIPS 左移逻辑
编写下面代码的另一种方法是什么?
我担心这段代码实际上并没有将 1 移到第 24 位。那么另一种写法是什么?
提前致谢。