問題タブ [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.
x86-16 - 8086 アセンブリで FP (Frame Pointer) の代わりに使用されるレジスタは何ですか?
FP の代わりに 8086 アセンブリで使用されるレジスタは何ですか? SPかESPだと思います。私は正しいですか?
assembly - アセンブリで「int21h」とはどういう意味ですか?
私はアセンブリ言語を学ぶのが初めてで、コマンドが何をint 21h
意味するのか疑問に思っています。例えば:
これは、ユーザーからキーを読み取る必要があります。
interrupt - 8086 の割り込みサービス手順
8086 の割り込みサービス プロシージャで適切なリソースが見つかりませんでした。8086 がさまざまな割り込みを処理する方法を知りたいです。私を助けてください。
arrays - emu8086は配列内の最小値と最大値を見つけます
特定のサイズの配列で最小値と最大値を見つける ASM コード (emu8086 用) を考え出す必要があります。サンプル コードでは、講師が LIST という名前の配列を含むデータ セグメント (と思われるもの) を提供しています。彼は、このリストを異なるサイズの他のリストに置き換えると主張しており、私たちのコードはそれを処理できなければなりません。
以下にサンプルコードを示します。この問題を解決するために最善を尽くしたことを示すために、追加した部分を強調表示しました。
memory-management - 8086 が追加のレジスタを使用して 1MB のメモリをアドレス指定するのはなぜですか?
8086 には 16 ビットのレジスタがあり、64K のメモリしかアドレス指定できないと聞きました。それでも、20 ビット レジスタを必要とする 1MB のメモリをアドレス指定できます。別のレジスタを使用して別の 16 ビットを保持し、16 ビット レジスタの値をこの別のレジスタの値に加算して、最大 1MB のメモリをアドレス指定できる数値を生成できるようにします。そうですか?
なぜこのように行われるのですか?32 ビットのレジスタがあるようです。これは、1MB のメモリをアドレス指定するのに十分すぎるほどです。
assembly - 8086アセンブリで画面に文字を印刷する最も簡単な方法は?
8086リアルモードアセンブリを使用して(OSなしで)単一の文字(または文字列)を画面に書き込む最も簡単な方法を知っている人はいますか?
以下のようになるかと思っていたのですが、うまくいかないようです。
mov [0b800h]、「A」
どうもありがとう!
ニック
x86-16 - 既存の割り込みのほとんどをサポートするアセンブラはどれですか?
私は現在emu8086を使用しています(したがって、8086mP用にプログラミングしています)が、int 21h / ah = 5bhなどの割り込みを「理解」できないため、emu8086には苦労しています。他の割り込みを使用するには?
function - VC++ は Intel マシン コードまたは中間コードにコンパイルされますか?
VC++ の関数ポインターが、x86 マシン コードを含む事前に初期化されたメモリ ブロックを指すことができるかどうか疑問に思っています。関数ポインターを使用して、その場所でコードを実行できますか?
すなわち
これは、場所 0x4A152 で x86 コードを実行し続けますか、それとも、その場所で中間コードを予期しているため、チョークしますか?
assembly - ブートローダーの第2ステージをロードし、起動します
最近、ブートローダーがどのように機能するかを把握しようとしています。ローダーをnasmアセンブラーで作成し、bochsとフロッピーイメージでテストしています。
ステージ1と2のコンパイル済みバイナリは、コピーによって1つのイメージに結合されます。この画像は私が望む通りです。512バイトのstage1コード(マジックナンバーが含まれており、問題なくロードされます)と2番目のセクターの512のstage2コード。
しかし、私の問題は、セクターをRAMにロードし、そこにジャンプすることだと思います。私のコードに何か問題がありますか?
Stage1.asm
stage2.asm
私は徹底的にグーグルで検索しましたが、セクターをラムにロードしてジャンプする方法を正確に説明しているものは何も見つかりませんでした。私のプログラムでは、2番目のセクターのマジックナンバーでさえ見つかりません。
それがアドレスのいくつかの誤算であるならば、素晴らしいでしょう。
更新:現在のソースコード、ロックアップのある行がマークされています。純粋なパラノイアから、4つのメインレジスタすべてを0に設定しました。
Update2:再び現在のバージョン。レジスタの設定からint13hの発行までの間に何も行われません。
assembly - dosでINT21Hを使用する8086アセンブリプログラムを作成する
次のことを行う8086アセンブリプログラムを作成する必要があります 。-キーボードから2つの数値を読み取ります-それらの数値の合計を表示します
これまでに得たヒント:キーボードはASCIIコードをレジスタに格納し、それを読み取りますINT 21H と呼ばれるISR(割り込みサービスルーチン)を使用する必要があります
使用するツール: Microsoftアセンブラー
コードテンプレートの例は次のとおりです。
、注.exit
はと同等です
私の質問はそれを行う方法です、アセンブラにはGUIがありません、それをコンパイルしてそれから.exeを作成する方法がわかりません、一般的にあなたはそれをexplainで解決できますか?