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・・・・・・・・・・・・・・・ |
(This host) = http://osask.net