パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

MASMで、文字列を数値に置換するマクロ」記事へのコメント

  • ライブラリを使ってよいなら、こういうコードを書くより strtol()の利用を考えるべきでは?
    少なくとも base を指定できる分、このマクロよりも汎用性が高い。

    逆の言い方をすると。マクロにするなら base ぐらい指定できなくちゃ駄目だ。10進数オンリーなマクロなんて役に立たない。
    # 11進数以上に対応するとなると難しくなるが、2以上9以下に対応するのは簡単だろう?

    --
    fjの教祖様
    • この場合のwsprintfはWin32APIとして使っているので、
      Win32APIにはないstrtol関数は利用できません。

      もしかしてMASMからC言語のライブラリを利用する方法もあるのでしょうか?

      --
      By KMY
      • あって当然。

        いいかい? アセンブラは「CPUができることはすべて指定できる」のだよ??
        VC++でできてMASMでできないことなど何一つとしてない。

        #include <stdio.h>
         
        int
        main( int argc, char *argv[] )
        {
            printf( "hello world\n" );
        }

        というファイルをVC++あたりでコンパイルしてご覧。その際に /S をつけるんだ。

        上記のコードの MASM 版が出来上がるから。

        あとは、「そのMASM版コードをどうやって exe にするのか」をVC++に実行させてみれば、必要なライブラリをどうやってくっつければいいのかも含めて、判る。

        strtol(3)を使いたければ、同じようにしてCのサンプルコードを作り、そこから アセンブラコードを吐かせて、アセンブラコードから .exe を作る方法を調べればよい。たいていはライブラリをリンクする方法と、どのライブラリにどの関数が含まれているのかさえ判ればよい。

        --
        fjの教祖様
        親コメント

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

処理中...