ページへ戻る

− Links

 印刷 

hideyosi​/hidetol8計画 のバックアップ差分(No.9) :: OSASK計画

osaskwiki:hideyosi/hidetol8計画 のバックアップ差分(No.9)

« Prev[4]  Next »[5]
8: 2010-01-28 (木) 16:57:47 lina[6] ソース[7] 9: 2010-01-28 (木) 23:17:57 lina[6] ソース[8]
Line 544: Line 544:
SIZE(22){''だれかそういうのの載ってるURL教えてけれ!!''}~ SIZE(22){''だれかそういうのの載ってるURL教えてけれ!!''}~
ググっても全然みつからないよ・・・orz・・・ ググっても全然みつからないよ・・・orz・・・
 +
 +**手がかりがあったぞ [#kb1378d6]
 +adclは、''拡張加減算''と呼ばれるものらしい。
 +
 +・・・やっとこさ、NASMの解説サイトを見つけたんだが・・・・~
 +http://ryujin.kuis.kyoto-u.ac.jp/~nobu/study/nasm/nasm.html
 +
 +これからこれを読むのか・・・頭クラクラしてきた・・・
 +
 +**お得意のやっつけ変化球 [#he38ac39]
 +実験的にadclの行を抜いてgas2naskしてみた。するってーと、Nasukaとしてはこんな文法になることがわかった。
 + _rc_encode0:                              _rc_encode0:
 +  pushl %ebp                          PUSH EBP
 +  movl %esp, %ebp                    MOV EBP,ESP
 +  movl 8(%ebp), %ecx                  MOV ECX,DWORD [8+EBP]
 +  shrl 4(%ecx)                        SHR DWORD [4+ECX],1
 +  cmpl $0, 12(%ebp)                  CMP DWORD [12+EBP],0
 +  jne L4079                              JNE L4079
 +  movl 4(%ecx), %eax                  MOV EAX,DWORD [4+ECX]
 +  xorl %edx, %edx                    XOR EDX,EDX
 +  addl %eax, 16(%ecx)                ADD DWORD [16+ECX],EAX
 + ; adcl %edx, 20(%ecx)
 + L4079:                                    L4079:
 +  movl 4(%ecx), %eax                  MOV EAX,DWORD [4+ECX]
 +  cmpl $16777215, %eax                CMP EAX,16777215
 +
 +また、adcl、そしてそれに良く似たaddl命令の働きがわかって来た。COLOR(blue){上記の例で解る通り、addlはgas2naskで翻訳できていて、さらにそのパターンがわかる!}
 +|       |>|>|GASソース| |>|>|Nasuka(NASM風)ソース|
 +|addl命令| addl | %eax | 16(%ecx) | | ADD | DWORD[16+ECX] | EAX|
 +
 +これらの比較から、まだ未確認だがこういう予測が立ってきた・・・
 +
 +-COLOR(blue){多くの命令は、GASの場合、おケツにlが付いているだけ。}
 +-COLOR(blue){第一オペランドと第二オペランドが逆}
 +
 +・・・つーことはだよ? x86に、''ADC''という命令がダイレクトにあれば、addl(ADD)と同じ翻訳でいいんでないのか?これ????
 +
 +**出ました!乱暴者!!! [#m6641f49]
 +どうもx86には、''ADC''という命令はあるっぽい(まだ、調べきっていないのだが)。・・・だったらさぁ・・・・
 +
 +さっき出来た.nasに、手書きでADC命令を書きこんでNasukaにかけ、bim2binをでっち上げてみる!!!!~
 +さぁ!動くか!? うごくのかあぁぁぁぁ!!!!
 +
 +COLOR(blue){動いちゃうんだからやめられないよなホントwwww}
 +- -osacmp -tek0 正常動作。出力ファイルに違いがない!
 +- -osacmp -tek1 正常動作。出力ファイルに違いがない!
 +- -osacmp -tek5 正常動作。出力ファイルに違いがない!
 +
 +完璧だ・・・私は完璧だ! 今日から戦闘力10万の完璧超人を名乗らせてもらおう!! 
 +
 +
 +**貴様風情に北斗1800年の歴史を極めることなどできない [#n520ae2b]
 +・・・でさ・・・gas2naskどうすんのよ・・
 +
 +・・・・・・・・・・・・・orz・・・・・・・・・・・・・・・
« Prev[4]  Next »[5]