V−11
次のコードは、4000番地から150語 (1語は4番地分) に0を格納するコードである。プログラムの意味が変わらないように、ループ内に不要な命令をできるだけ多くループ外
(ラベルloopより前) に移動する最適化を行った後、このコードを実行したときの命令実行総数として、最も適切なものはどれか。
LDI R1, #150
LDI R2, #0
loop: LDI R3, #4000
MULI R4, R2, #4
ADD R5, R3, R4
LDI R6, #0
ST R6, (R5)
INC R2
SUB R7, R1, R2
BGZ R7, loop
各命令の意味は以下のとおりである。
LDI Rx, #Y レジスタ Rx に値 Y を格納する。
ST Rx, (Ry) Ryの内容が示す番地に Rx の値を格納する。
INC Rx Rx を 1増やす。
ADD Rx,Ry,Rz Ry+Rz を Rx に格納する。
SUB Rx,Ry,Rz Ry-Rz を Rx に格納する。
MULI Rx,Ry,#Z Ry*Z を Rx に格納する。
BGZ Rx,label Rxが0より大きければlabalに分岐する。
@ 755 A 904 B 1053 C 1202 D 1500
タグ:機械語命令