习题(K.4)
习题 K.1
[3] <K.4> 下面的 VAX 指令把寄存器 r5 指向的存储器单元减一:
哪一条 MIPS 指令能完成相同操作?如果单条指令无法实现,请给出最短的 MIPS 指令序列。两种机器上相应指令的长度分别是多少?
习题 K.2
[5] <K.4> 要求与习题 K.1 相同,但改用以下 VAX 指令;它采用自动递增间接寻址,把一个存储器单元清零:
习题 K.3
[5] <K.4> 要求与习题 K.1 相同,但改用以下 VAX 指令;它给 r5 加一并将结果写回 r5,再与 r6 比较,若 r5 < r6 则分支到 L1:
其操作为 r5 = r5 + 1; if (r5 < r6) goto L1。原题用 # 引出这一说明;为避免与 VAX 的立即数符号混淆,这里将说明独立列出。
习题 K.4
[5] <K.4> 给出实现以下 C 语句的单条 VAX 指令,若不能用一条实现,则给出最短指令序列:
假设 a 对应寄存器 r3,b 对应 r4。
习题 K.5
[10] <K.4> 给出实现以下 C 语句的单条 VAX 指令,若不能用一条实现,则给出最短指令序列:
假设 c 对应寄存器 r3,i 对应 r4,x 是一个 32 位字数组,起始存储器地址为十进制 4,000,000。