如何计算for循环的已执行指令数

时间:2019-01-03 20:41:44

标签: c mips executable instructions

我写了一个简单的MIPS for循环代码,我想计算已执行指令的数量,我想知道如何计算MIPS for循环中已执行指令的数量。代码如下:

li $s0, 0                             ## int i = 0
li $t1, 4                             ## max bound = 4

for_loop:
  addi $s0, $s0, 1                    ## increment int i by 1
  beq $s0, $t1, for_loop_done         ## i = 4 => terminate
  j for_loop                          ## go back to the

for_loop_done:

C中对应的for循环为:

for(int i = 0; i < 4; i++) 
{
i++;
}

我们了解到要计算已执行指令的数量,我们假设代码运行了n次。您添加1进行变量的初始化。然后,您添加for循环主体的指令总和。然后将其添加到n + 1中,以计算i和4。最后,您添加n来计算thr变量的增量。我的理解是,我的特定代码执行的命令数为16,这就是原因。

+1执行的命令-初始化int i。

+5条已执行的命令-因为int i从0开始一直上升到4。

+4个执行的命令-int i递增4倍。

+6条执行的命令-每次对int i和4进行比较,即int i <4。

我还要计算C中for循环的已执行命令数,而不是MIPS。我的想法是,两个程序之间执行指令的数量不会有所不同。

我还是不能百分百确定自己是否正确或是否已经完全理解该主题。

0 个答案:

没有答案