問題タブ [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 投票する
10 に答える
14704 参照

c++ - 16 ビット x86 コンパイラを探しています

私は組み込みシステム プロジェクトに取り組んでおり、コンパイラが Paradigm C++ IDE にプログラム的に組み込まれているという問題に遭遇しました。ビルドを自動化できるようにしたい。

プロセッサは AMD186ES です。私はOSで作業していません-ベアメタルのものだけです。C++ からリアルモードの 16 ビット 8086 マシン コードを生成する必要があります。

私のグーグルは、G ++がそのようなコードを構築できることを示しています。

私の質問は次のとおりです。

このマシン コードをビルドするように g++ を構成できますか?

それを行うことができる他の C++ コンパイラはありますか?

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

assembly - アセンブリ アプリケーションでのメモリの変更

「x86アセンブリの芸術」という本からアセンブリ言語を勉強していますが、答えがわからない質問があります。

プログラムは次のようになります。

この演習では、メモリ内の値を調べて操作するプログラムの実行を開始します。次に、メモリ画面に切り替えて、メモリ内の値を変更します (つまり、プログラムの実行中にメモリに直接アクセスします)。

プログラムはメモリ位置 1000h を 0 に設定することから始まり、2 つの条件のいずれかが満たされるまでループします - ユーザーが FFF0 スイッチをトグルするか、ユーザーがメモリ位置 1000h の値を変更します。FFF0 スイッチを切り替えると、プログラムが終了します。

メモリ位置 1000h の値を変更すると、n ワードを加算するプログラムのセクションに制御が移ります。ここで、n はメモリ位置 1000h の新しい値です。」

これらの値を合計した後、「put」を使用して合計を出力します

私はこのコードを持っています:

問題は、値 12h を 1000h に置くと、プログラムが 2 つの値、合計、および数値 1 を出力することです。

プログラムをステップ実行すると、1 つの値 (合計) が出力されますが、実行すると 2 つの値 (合計と数値 1) が出力されます。

誰かがこの動作を説明できますか?

0 投票する
17 に答える
738311 参照

assembly - LEA 命令の目的は何ですか?

私にとっては、ファンキーな MOV のように思えます。その目的は何ですか?いつ使用する必要がありますか?

0 投票する
6 に答える
96752 参照

assembly - 16 ビット アセンブリ コードの OFFSET とはどういう意味ですか?

16 ビット リアル モードのアセンブリ コードの例をいくつか見ていきます。

私は次の行に出くわしました:

これは何をしているのですか?そこに「オフセット」があることは何をしますか?

0 投票する
6 に答える
78168 参照

linux - 生の 16 ビット x86 マシン コードを逆アセンブルするにはどうすればよいですか?

所有している起動可能な x86 ディスクの MBR (最初の 512 バイト) を逆アセンブルしたいと考えています。を使用してMBRをファイルにコピーしました

ファイルを逆アセンブルできる Linux ユーティリティの提案はありますmbrか?

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

c++ - アセンブラ タスク - 配列の最小値と最大値

アセンブラ コードで問題が発生しました。私はアセンブラーの初心者なので、自分で解決するのは難しいようです。

タスクは、「配列の最小要素と最大要素を見つけること」です。

私がすでに行ったことは、最大要素を検索することだけです。最小限の要素をチェックする方法と、そのような検証をどこに置くべきかを見つけることができません。または、おそらく、最大要素を見つけた後、要素を2回ループする必要がありますか?

コード:

0 投票する
6 に答える
8889 参照

macos - 優れた 8086 エミュレーター

Mac 用の 8086 エミュレーターはありますか。はいの場合、どれが最適ですか

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

assembly - 2つの異なる行に文字列を印刷します

プログラムで2つの異なる行に文字列を表示させようとしています。

これは.comプログラムであり、A86アセンブラを使用しています。

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

assembly - 8086 アセンブリのマウスの右クリックによる割り込み

Windows マシンで 8086 アセンブリのプロジェクトに取り組んでおり、どのマウス ボタンがクリックされたかを知る必要があります。これに対する割り込みは何ですか?または、どうすればこれを見つけることができますか?

ありがとう

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

assembly - 2 つの 16 ビット レジスタを使用して 20 ビット アドレスを作成するにはどうすればよいですか?

IAPX88 は 1 メガ バイトのメモリ (20 ビット アドレッシング) を処理できますが、私の質問は、2 つの 16 ビット レジスタを使用して 20 ビット アドレスを作成する方法です。例を挙げてください。