私は知識に何ものかを付け加え,また他の人々がより多くのものを付け加える手助けをした --- G.H.ハーディ 前回のコードをgas(GNU assembler)で書き直した。また、以下の点が異なる。 - gasはmasmのような高級な構文(invokeや.ifなど)を持っていないので、全てより低水準な表現で書き直されている。 ループなどをアセンブラで書くのは面倒だったので、Cで書ける部分はCで書いた。(crt.c) - 関数の戻り値をチェックしている。 - main()に渡されるargvの型を、wchar_t *argv[]ではなく、より標準的なchar *argv[]にした。 CommandLineToArgvW()で確保された、ワイド文字列の領域を、WideCharToMultiByte()でマルチバイト文字列に変換した後のargvで破壊的に更新することが合法なのかどうかは謎なのだが、