换一段程序,结果就变了
运行下面这段程序,填写它打印出来的结果。
PROG = [0b00001001, 0b01000111, 0b10000011, 0b11000000]
def decode(w):
return (w >> 6) & 3, (w >> 5) & 1, w & 31
def run(prog):
R = [0, 0]
seen = []
for w in prog:
op, rd, imm = decode(w)
if op == 3:
break
if op == 0:
R[rd] = imm
elif op == 1:
R[rd] = (R[rd] + imm) & 255
else:
R[rd] = (R[rd] - imm) & 255
seen.append(R[0])
return seen
OTHER = [0b00000101, 0b01000011, 0b11000000]
print("/".join(str(v) for v in run(OTHER)))
全部评论