東北大学 工学研究科 電気・情報系 2016年8月実施 専門科目 問題4 計算機1
标签:
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
日本語版
各番地に整数が格納されるメモリと, つの整数レジスタ を持つ計算機を考える。Fig. 4(a) の命令を用いて,以下の問に答えよ。
(1) Fig. 4(b) のプログラム(命令の列)を実行した後に,レジスタ に格納されている値は何か。
(2) メモリの 番地に格納されている整数 と,メモリの 番地に格納されている整数 との差 を計算し, ならば を, ならば をメモリの 番地に格納して停止するプログラムを書け。 番地以外のメモリの値を変更してはならない。
(3) Fig. 4(c) は,メモリの 番地に格納されている正の整数 を,メモリの 番地に格納されている正の整数 で割ったときの商をメモリの 番地に,剰余を 番地にそれぞれ格納して停止するプログラムである。Fig. 4(c) にある に対する適切な整数,および に対する適切な命令をそれぞれ答えよ。
Fig. 4(a)
| 命令 | 動作 |
|---|---|
SET i | に整数 を格納する。 |
LDR i | メモリの 番地に格納されている値を に格納する。 |
STR i | メモリの 番地に, の値を格納する。 |
SUB i | の値から,メモリの 番地に格納されている値を減算し,結果を に格納する。 |
INCR | の値に を足し,結果を に格納する。 |
BLTZ | の値が 未満ならば,次の命令をスキップする。 |
BLA i | 先頭の命令から数えて 番目の命令にジャンプする(ただし先頭の命令を 番目と数える)。 |
HALT | プログラムの実行を停止する。 |
Fig. 4(b)
1: SET 10
2: STR 80
3: INCR
4: SUB 80
5: BLTZ
6: BLA 8
7: LDR 80
8: HALT
Fig. 4(c)
1: SET 0
2: STR 82
3: LDR 80
4: SUB 81
5: BLTZ
6: BLA [w]
7: BLA [x]
8: STR 80
9: LDR 82
10: [y]
11: STR 82
12: BLA 3
13: [z]
14: STR 83
15: HALT
题目描述
计算机有一个整数寄存器 和按地址存储整数的内存 。指令语义如下:
| 指令 | 操作 |
|---|---|
SET i | |
LDR i | |
STR i | |
SUB i | |
INCR | |
BLTZ | 若 ,跳过紧接的一条指令 |
BLA i | 跳到第 条指令,从 开始编号 |
HALT | 停止 |
- 下列程序结束时 为多少?
1: SET 10
2: STR 80
3: INCR
4: SUB 80
5: BLTZ
6: BLA 8
7: LDR 80
8: HALT
- 编程计算 后停止,不能修改其他内存位置。
- 下列程序把正整数 除以正整数 ,商存到 、余数存到 。填写整数 和指令 。
1: SET 0
2: STR 82
3: LDR 80
4: SUB 81
5: BLTZ
6: BLA w
7: BLA x
8: STR 80
9: LDR 82
10: y
11: STR 82
12: BLA 3
13: z
14: STR 83
15: HALT
Kai
(1)
前四步使 依次为 ,且 。因 ,第 条不跳过下一条,随后跳到第 条停止,所以
(2)
1: LDR 80
2: SUB 81
3: BLTZ
4: BLA 6
5: SET 0
6: STR 82
7: HALT
非负差值直接存储;负差值跳过第 条,并先置零。仅 被修改。
(3)
试减结果非负时,跳到第 条保存新余量,并把商加一;结果负时,跳到第 条取回尚未试减的余量,作为余数。若原被除数为 、除数为 ,每次循环保持
退出时 ,因此所存商和余数满足整数除法定义。