問題タブ [x86-16]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - 変数の動作がおかしい (Intel 8086)
編集:自分の質問に答えました。下記参照。-_-
次のように .data セグメントで定義された変数があります。
これは、戻り値を取得するために加算または減算する値です。
コード セグメントに最初に表示されるのは、次の時点です。
デバッガーを使用しましたが、この操作の時点で ax レジスターが 0000h であることを確認できます。
それでも、その直前に次のコード行を追加すると:
私はまったく異なる値を取得します(これも間違っています)。私はかなり困惑しています。ここで変数を根本的に誤用していますか? 変数が最初に初期化された (まだ変更されていない) 同じ値をロードすると、結果が変わる理由がわかりません。
何か案は?それができない場合、CodeView を介して変数の値を追跡する方法を教えてもらえますか? (私が使っている DOSBox デバッガー)
pointers - Intel 8086 アセンブリのポインターとインデックス
配列 DI へのポインタがあります。
DI と別のポインターの両方が指す値に移動することは可能ですか?
例えば:
また、関連するメモとして、2 つのレジスタの値を交換する 1 行のオペコードはありますか? (私の場合はBXとBP?)
assembly - ハードウェア割り込み一覧
ハードウェア割り込みのリストはありますか? 私は 16 ビット アプリをコーディングしていて、いくつかの INT をチェックしたかったのですが、Google で役立つものが見つかりませんでした。それに関するドキュメントを提供してもらえますか? できれば詳細を添えて。
有効なリクエストではない場合は申し訳ありませんが、この質問に合う唯一の場所だと思います
前もって感謝します
assembly - 8086 マイクロプロセッサのスタック オーバーフロー
8086 マイクロプロセッサのスタックがいっぱいで、それでも何かをプッシュした場合の動作はどうなりますか?
assembly - 8086 アセンブリに相当する Microchip の MPLAB IDE
私は常に 8086 アセンブリを学びたいと思っていましたが、どこから始めればよいか少し混乱していました (そして今も)。私たちは現在学校でPIC16F690を学んでおり、私はそれが得意です。だから、8086 を試してみてもいいと思います。MPLAB IDE のような 8086 用の IDE があり、コードを書き、行ごとに命令を実行し、メモリ、レジスタ、その他のものを監視できるのではないかと思っています。
c++ - 近く、遠く、そして巨大なポインターは何ですか?
誰かが私にこれらのポインタを適切な例で説明できますか...そしてこれらのポインタがいつ使用されるか?
windows - 64 ビット Windows での 16 ビット アセンブリ?
少し前にアセンブリの学習を開始することにしたので、FASMW を使用して 16 ビット アセンブリから始めました。しかし、最近、Windows 7 64 ビットを実行する新しいコンピューターを手に入れましたが、プログラムがアセンブルするコンパイル済みの .COM ファイルが機能しなくなりました。.COM は 64 ビット Windows と互換性がないというエラー メッセージが表示されます。32 ビット アセンブリは引き続き動作しますが、16 から始めて、徐々に上に進んでいきたいと思います... Windows 7 で 16 ビット プログラムを実行することは可能ですか? またはそれらをコンパイルする特定の方法はありますか?それともあきらめて、代わりに 32 ビットにスキップする必要がありますか?
assembly - リアルモードBIOSルーチンとプロテクトモード
OSの実験をしています。これまで、私のコードはすべてリアルモードのBIOS割り込みを利用して、ハードディスクとフロッピーを操作していました。しかし、私のコードがCPUの保護モードを有効にすると、すべてのリアルモードBIOS割り込みサービスルーチンが使用できなくなります。ハードディスクとフロッピーをどのようにIR/Wできますか?今、いくつかのハードウェアドライバーを実行する必要がありますか?どうすれば始められますか?これがOSの開発が難しい理由のひとつですか?
ハードウェアはすべて、特定の制御レジスタまたはデータレジスタからの読み取りと書き込みによって制御されることを知っています。たとえば、ハードディスクのコマンドブロックレジスタの範囲は0x1F0から0x1F7であることがわかっています。しかし、非常に多くの異なるハードウェアのレジスタアドレスがPCプラットフォームで同じであるかどうか疑問に思っていますか?または、それらを使用する前にそれを検出する必要がありますか?それらを検出する方法は??
フロッピーまたはハードディスクを保護モードでR/Wする方法がわからないため、BIOS割り込みを使用して、必要なすべてのカーネルファイルをフロッピーからメモリにロードする必要があります。しかし、カーネルファイルがリアルモードの1Mスペース制限を超えた場合はどうすればよいですか?
どんな回答に対しても、私は深い感謝の意を表します。
アップデート
最初にプロテクトモードを切り替えてからリアルモードに戻す方法があることをぼんやりと思い出します。そして、BIOSルーチンを保護モードで使用できます。多分私は間違ったことを覚えています。誰かがそれを正しく覚えていましたか?
microcontroller - マイクロコントローラのメモリからメモリへのデータの移動
メモリの場所から別のメモリの場所にデータを直接移動できないのはなぜですか。
ばかげた質問をしている場合は申し訳ありませんが、少なくとも私が遭遇したものについては、これが本当の状況だと思います (8085,8086 n 80386)
私は実際にデータを移動するための解決策を探しているわけではありません (たとえば、movs n all を使用するなど) が、実際にはこの異常の理由です。
assembly - A2004 MASM32 の問題
MASM32 アセンブラに問題があります
次のコードは、MASM32 チュートリアルからコピーした Hello World の例です。
アセンブルしようとすると、MASM32 は次のコメントとともに A2004 エラーをスローします。
誰でもそれで私を助けることができますか?このコードは TASM アセンブラーでは問題なく動作しましたが、今は MASM32 を使用する必要があり、以前に TASM で動作することが証明されたアセンブリ コードでこの A2004 エラーが発生しています。
これが関連する場合、私は Win7 OS を実行している 32 ビット CPU を持っています。
ありがとう。