問題タブ [emu8086]
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 - ダイレクトメモリアドレッシングモード
データセグメントでバイトが定義されていると仮定します
では、以下の命令はアドレッシングモードで何を意味するのでしょうか。
と
NUM
はメモリ エントリ (たとえば 1000H) のラベルであるため、最初のものは として解釈され、2 番目のものは として解釈されると想定しMOV SI, [1000]
ますMOV [1000], 1AH
。そのため、ダイレクト メモリ アドレッシング モードを使用します。私は正しいですか?
assembly - トポロジーソート asm x86
emu8086 で asm x86 コードを作成する際に、隣接行列とノード数が与えられたグラフ (cicles なし) のトポロジカル ソートを見つける際に大きな問題があります。私はいくつかのアイデアを試しましたが、何もうまくいきませんでした...だから、これを解決する方法、またはこの問題にアプローチする方法について、(言葉またはコードで)助けてくれる人がいれば、それは素晴らしいことですどうすればいいのかわからないので...データは次のように与えられます。
これを解決するには、DFS アルゴリズムが最適だと思います。しかし、繰り返しますが、私は心からすべてを試しましたが、これまでのところ何もうまくいきませんでした...だから、どんな助けにも感謝します. 前もって感謝します!!!(そして悪い英語でごめんなさい)
編集:これを書きましたが、まったく機能しません:
recursion - 再帰でループ インデックスを追跡する際の問題
こんにちは、アセンブリに取り組んでいます。私の問題は次のとおりです。再帰を使用しているときに、アセンブリ内のいくつかの変数を追跡する方法があるかどうかを知る必要があります。スタックを使用して、呼び出し時に再帰関数にパラメーターを渡すことができることを知っています。たとえば、Python のこのコード:
私はそれが完全ではないことを知っていますが、たとえば私がやりたいことは、関数を2回呼び出すことです。関数を返すときに、forループでインデックス「i」を追跡する必要があります。アセンブリではJMP
、レジスタを使用する必要がある回数だけ使用して反復します。したがって、RET
が呼び出されると、カウンターの値 (この場合は i) が失われます。
assembly - アセンブリ 8086 EQU ディレクティブ
アセンブラで明確なEQUディレクティブを作成するだけで問題が発生します (8086)。
EQU は、コード内で xyz、xyz が表すもの、値などで見つかった場合、文字通り abc を交換しますか?
すなわち、私は書くことができますか?
もう 1 つの質問は、EQU をグローバルにアクセスすることです。つまり、EQU をプロシージャー外で定義して、それを使用するプロシージャー内で使用できますか?
add - Emu8086 アセンブリ加算器
A0H より小さい数値 (num として初期化) を追加するアセンブリ プログラムを作成しようとしています。ただし、このプログラムを実行すると、数字の追加に失敗します。どんな助けでも大歓迎です。
assembly - アセンブリ言語のテキスト移動プログラム
アセンブリ言語で、スクリーン セーバーのように画面上のテキストまたは文字を移動するプログラムを作成しようとしています。つまり、最初は下方向だけでなく前方にも移動する必要があります。画面の下限に達すると、前方および上方に移動し始め、その逆も同様です。
私は自分で試してみましたが、キャラクターを前方と下方に同時に動かすことができました。キャラクターが画面の下限に達したときに、上方向と前方向に移動したいのですが、その方法がわかりません。
emu8086アセンブラを使用しています
最初のループの各反復の終わりに、画面の y 軸の下限が 23 であるため、「DH」= 23 かどうかを確認しています。画面の下限に達した場合は、「label2」にジャンプする必要がありますが、 「cmp」ステートメントを正しく使用していないため、「label2」にジャンプしません。誰でもこの問題を解決できますか?
私が助けてほしい主なことは、「label2」にジャンプするために「label1」でチェックインする必要がある条件です。
PS。アセンブリ言語の初心者なので、解決策を提案する場合は、シンプルで理解しやすいものにしてください。これが私がこれまでに試したことです。