Changes between Version 2 and Version 3 of Ex02_CA_2022


Ignore:
Timestamp:
Apr 18, 2022 5:01:40 PM (4 years ago)
Author:
nakasato
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Ex02_CA_2022

    v2 v3  
    11111ビット左シフトは2倍することと同等なので加算命令によって実現できます。 
    1212 
     13レジスタ$t0を1ビット左シフトして結果をレジスタ$t1に保持する: 
     14 
    1315シフト命令を使う場合: 
    1416{{{ 
    15 sll $8,$9,1 
     17sll $t1,$t0,1 
    1618}}} 
    1719 
    1820加算命令の場合: 
    1921{{{ 
    20 add $8,$9,$9 
     22add $t1,$t0,$t0 
    2123}}} 
    2224 
     
    4951シフト命令を使う場合: 
    5052{{{ 
    51   srl $8,$8,1 
    52   andi $9,$8,1 
     53  srl $t0,$t0,1 
     54  andi $t1,$t0,1 
    5355}}} 
    5456 
    5557加算命令の場合: 
    5658{{{ 
    57   addi $10,$0,1     # $10に1を代入(前処理) 
     59  addi $t2,$t2,1    # $t2に1を代入(前処理) 
    5860    : 
    59   addu $10,$10,$10  # 左シフト。通常でslr命令だった部分に相当 
    60   and $9,$8,$10     # 通常でandi命令だった部分に相当 
     61  addu $t2,$t2,$t2  # 左シフト。通常でslr命令だった部分に相当 
     62  and $t1,$t0,$t2   # 通常でandi命令だった部分に相当する。この後、$t1の値に応じてbeq命令を使う 
    6163}}} 
    6264