2020年11月16日

令和2年度 技術士第一次試験問題 情報工学部門 V−11

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




答えはこちら
タグ:機械語命令
posted by ファーストマクロ at 19:41| Comment(0) | R02技術士一次試験(情報工学)