問題タブ [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.

0 投票する
2 に答える
2900 参照

assembly - 割り込みが発生すると、x86 アーキテクチャで何が起こりますか?

x86 とリアルタイム システムについて勉強していますが、質問があります。

割り込みを処理するためにx86が従う手順はどれですか?

0 投票する
3 に答える
1238 参照

memory - 8086のメモリスペースを最大1GBまで拡張するにはどうすればよいですか?

8086でメモリスペースを最大1GBまで拡張するにはどうすればよいですか?

0 投票する
2 に答える
349 参照

.net - Delphi.netの8086プロジェクトを手伝ってくれませんか。

アセンブリプログラマーを見つけるのは私を助けるのが非常に難しいです

私は.netではないDelphiの古いコピーを持っている確立されたDelphiプログラマーですそして私は.netのDelphiコードに変換している*.dllを持っています私はほとんど知らないので大きな学習曲線にいますまだ.netの。今日は.netのコンピューターを持っています!!!!!!

* .dllをディスセンブラーで実行し、Delphiアセンブリに書き込むときにジャンプリンクを挿入し始めました。アドレス指定は行わず、参照リンクのみを使用します。

ファイルには固定の文字列構造があります(C ++だと思います)ASCIIおよびANSI文字列1/コードがこれらの構造をどのように参照しているかを識別する方法がわかりません

2/そして私は関数が始まったのかそしてそれらがどのような形に見えるのか分かりません

コードは誰でも自由に見ることができ、その中の関数はそれほど多くありません。しかし、スタックオーバーフローでは表示できないため、メールで送信する必要があります。

あなたは私を技術的にすることができますか、それともあなたが私を技術するためにあなたが知っているかもしれない友人に私を紹介することができますか?

0 投票する
1 に答える
3595 参照

assembly - アセンブラーでの絶対アドレス/レジストリ値の計算 (Intel 8086)

次の命令の絶対アドレスが 50000 (16 進数) であることはわかっており、IP レジスタにあるべき 16 進数値は 4000 (16 進数) であることもわかっています。私の質問は...なぜこのように機能するのですか?

必要に応じて、他のレジストリ値を利用できます。

何か案が?

0 投票する
2 に答える
881 参照

x86 - 8086/8088 での命令ポインタ オーバーフローに関するフラグ

こんにちは、私は 8086 アーキテクチャに不慣れで、Google で以下に関連するものをあまり見つけることができませんでした。

i8086 または i8088 (つまり、16 ビット、セグメント化されたアドレッシング) で、0xFFFF の命令ポインター (プログラム カウンター) で命令フェッチが発生するとどうなりますか? CPU が IP をインクリメントし、オーバーフローして 0x0 になると仮定しますが、CS レジスタは変更されません。

ただし、これが発生した場合、フラグが設定されますか (フラグレジスタのオーバーフロービットなど?)

ありがとう、

0 投票する
4 に答える
1363 参照

assembly - 16 ビット リアル モードでの物理アドレス式: セグメントに 16 を掛けるのはなぜですか?

physical address=16*selector+offset
しかし、セレクターで 16 を乗算する理由がわかりません。

0 投票する
1 に答える
1412 参照

file - 8086ファイルとの間でバイナリを読み書きするためのアセンブリ割り込み?

一度に約1KB程度のデータを読み込んで操作し、別のファイルに書き込む必要があります。少なくとも100MBはこれを行う必要があります。これまで、アセンブリでファイルIOを実行したことはありません。

どの割り込みを呼び出す必要があり、どのレジスタに何を含める必要がありますか?

0 投票する
3 に答える
727 参照

assembly - 8086アセンブリでの大きなバイナリシフト?

512バイトの長さのデータのバイナリチャンクがあります。一度右にシフトしたい場合、最も効率的な方法は何でしょうか。

今のところ(アセンブリに非常に新しい)私の最も良い推測は、最初にチャンク(おそらくint)をチェックして、それが何をシフトアウトし、シフトし、次に前のintがシフトアウトして運び続けるかを確認する必要があるということです。これにより、データがシフトダウンされます。もっと簡単な方法はありますか?このキャリーテクニックを使用する必要がある場合、シフトできる最大のチャンクは何ですか?DWord?QWord?

0 投票する
2 に答える
892 参照

assembly - Intel8086アセンブリ-レジスタの2乗

原則として、レジスタの値を2乗することは難しくありません。

しかし、私は考え始めました-私が賞の効率のためにアセンブリを非常に高く学んでいるコース。1行少ない差でも最大5ポイントの価値があります。

これはマイクロ最適化だと思いますが、次のコードは同じように実行されますか?:

私の質問を表現するもっと簡単な方法だと思います:AX(またはAL / AH)は8086アセンブリのmulandコマンドの有効なパラメータですか?imul

0 投票する
2 に答える
310 参照

assembly - 変数の動作がおかしい (Intel 8086)

編集:自分の質問に答えました。下記参照。-_-

次のように .data セグメントで定義された変数があります。

これは、戻り値を取得するために加算または減算する値です。

コード セグメントに最初に表示されるのは、次の時点です。

デバッガーを使用しましたが、この操作の時点で ax レジスターが 0000h であることを確認できます。

それでも、その直前に次のコード行を追加すると:

私はまったく異なる値を取得します(これも間違っています)。私はかなり困惑しています。ここで変数を根本的に誤用していますか? 変数が最初に初期化された (まだ変更されていない) 同じ値をロードすると、結果が変わる理由がわかりません。

何か案は?それができない場合、CodeView を介して変数の値を追跡する方法を教えてもらえますか? (私が使っている DOSBox デバッガー)