はりぼて日記
2007 | 01 | 02 | 03 | 04 | 05 | 07 | 08 | 10
2006 | 11 | 12
1月 18 (木曜日) 2007
17:34
26日目
 
26日目

[1]
なっるほどなぁ。たしかこういうテクニックって前にもどこかでやったよね?。
一見、コードが長くなるように見えなくもないけど、無駄なif(しかもforのせいで数万回分の)がなくなるので相当変化があると思われる。

[2]〜[3]
ふむ。これはつまり、こういうことだよね??

普通に8バイト書き込む

               ┌──────┐
MOV [0x00001000],0x11  →│ 0x11   │0x00001000
               ├──────┤
MOV [0x00001001],0x12  →│ 0x12   │
               ├──────┤
MOV [0x00001002],0x13  →│ 0x13   │
               ├──────┤
MOV [0x00001003],0x14  →│ 0x14   │ :
               ├──────┤ :
MOV [0x00001004],0x15  →│ 0x15   │ :
               ├──────┤
MOV [0x00001005],0x16  →│ 0x16   │
               ├──────┤
MOV [0x00001006],0x17  →│ 0x17   │
               ├──────┤
MOV [0x00001007],0x18  →│ 0x18   │0x00001007
               └──────┘

※ 合計8回もMOV命令を実行しないといけない。
=================================================================
32bit命令で8バイト書き込む

                  ┌──────┐
MOV [0x00001000],0x14131211  →│ 0x11   │0x00001000
                  ├──────┤
                 →│ 0x12   │
                  ├──────┤
                 →│ 0x13   │
                  ├──────┤
                  │ 0x14   │ :
                  ├──────┤ :
MOV [0x00001004],0x1817161515 →│ 0x15   │ :
                  ├──────┤
                →│ 0x16   │
                  ├──────┤
                 →│ 0x17   │
                  ├──────┤
                 →│ 0x18   │0x00001007
                  └──────┘

※ たった二回のMOV命令の実行で同じ結果になる。



むむむ・・・こりゃややこしいな。でもやっていることはわかるな。



 
30日を過ぎたBlogにはコメントできません。

Referer  (4)
(1) 2 3 4 5 6 7 8 9 10 » 

PopnupBlog V3 Denali created by Bluemoon inc.