アカウント名:
パスワード:
マクロが何かってところがちゃんとわかっていないんじゃないかな?
記事の方の説明不足でした。旧str2numマクロの中での話です。
.dataセクションの中で、引数をそのままDBとして定義してしまう以上ポインタを渡そうとしてもそのポインタの型がDBではないのでエラーが出るということを言いたかったわけです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
ん?なぜ?? (スコア:1)
私の書いたコードはそのまま掲載してもらっても構いませんが、まあ、サンプルコード向きではないかな(leaで乗和計算やってるし)
>また、マクロのパラメータにポインタを指定できないことに今ざら気づいたので、
なぜ?
出来ませんか?
というか、マクロの引数はリテラル渡しなので、何でも渡せますが…
Re: (スコア:0)
マクロが何かってところがちゃんとわかっていないんじゃないかな?
Re: (スコア:1)
記事の方の説明不足でした。
旧str2numマクロの中での話です。
.dataセクションの中で、引数をそのままDBとして定義してしまう以上
ポインタを渡そうとしてもそのポインタの型がDBではないのでエラーが出るということを言いたかったわけです。
By KMY
Re: (スコア:1)
アセンブラを使っている意味がないってレベル以前の問題ですよ。
movzx を知らなくても普通に、
mov eax, 0
mov al, BYTE PTR hoge
で、hoge から1バイト取り出せますよね?
Re:ん?なぜ?? (スコア:1)
もしかして、オペランドの BYTE PTR の意味を理解できていないからこれまでのようなコードになっていたりしますか?
そう考えると、すべてののおかしな点について説明が付くような気がしてきました。
そもそも、「MASMたかき協会」の「MASMの基礎」が、Hello, world から始まっていることも、アセンブラの解説書としてはおかしいですし…
(適当なメモリからデータを取ってきて(あるいは関数形式で作成して)、何かレジスタ上で処理をして、メモリに戻す、というように、レジスタ中心でメモリをほとんど触らないコードからスターするのが通常なのですが)
と書いても、mov al, BYTE PTR hoge の hoge にポインタ変数を指定して、ポインタからデータをレジスタにロードできない、とか言われちゃいそうですが…
もし分からなかったら(というか見る限りアセンブラ初心者で分からないように見えるので)、16ビット時代の参考書を一読することをお勧めします。
とりあえず「はじめて読むMASM」か「はじめて読む8086」位は完読してください。
(手元に無いのでどんな内容かは忘れましたが、この時代のアセンブラ入門書はどれも決まった内容なので、まず間違いないでしょうというか、アマゾンでMASMの入門書としてお勧めできそうなのがコレくらいしか出てこなかった。それ以外のは、せめてこれを読み終わった後に読むようなものばかり)
因みに、「はじめて読む386」や「はじめて読む486」は「はじめて読む8086」の後に読むことをお勧めします。
一応基礎の説明はあるものの、基礎がすっぽり抜け落ちているように見えるあなたにはむしろ不向きだと思われます。