在学习MIPS的过程中,我对这部分感到困惑.
John L. Hennessy教授写的教科书说,如果我们得到一些很大的常数来加载,我们应该
lui $s0, upper(big)
ori $s0, $s0, lower(big)
Run Code Online (Sandbox Code Playgroud)
但为什么我们不这样做呢
addi $s0, $zero, big
Run Code Online (Sandbox Code Playgroud)
由于寄存器是32位,这是更直接的,不是吗?
我有两个问题:
1)最近我尝试构建一个最大堆.即使我读过CLRS,我也无法找到它.以下是我的代码......
def maxHeapify(list, index):
int = index
left = (int+1) * 2 - 1
right = (int+1) * 2
largest = 0
if left < len(list):
if (left <= len(list)) & (list[left] >= list[int]):
largest = left
else:
largest = int
if right < len(list):
if (right <= len(list)) & (list[right] >= list[largest]):
largest = right
else:
pass
if largest != int:
listNew = swapWithinList(list, int, largest)
listNew = maxHeapify(listNew, largest)
else:
return listNew …Run Code Online (Sandbox Code Playgroud)