問題タブ [tasm]

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 投票する
3 に答える
3310 参照

assembly - アセンブリ言語でのジャンプの理解(TASM)

だから私は実際にジャンプがどのように機能するかを理解するのに苦労しています、

例を挙げましょう。DXの値が5より大きい場合、L1をループして、L2にジャンプするので、これを実行しましたが、コードはL2で読み取る必要のあるコードの行数をどのように認識していますか?

複数の操作、つまりA、B、Cを実行したい場合、L2にジャンプした後、3番目の操作の後にL2を終了するにはどうすればよいですか?

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

assembly - 16 進数/10 進数の変換 (Assemly-TASM)

数字を単純に順番に印刷しようとしています。

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

ループを使用して、最初に各数値をヘキサに変換して印刷し、10進数のインクリメントに1ずつリセットしてから、数値が9に等しくなるまで次を印刷します。数値が9に等しい場合、DAAを使用して単純に数値を回転させた後数値をシフトして、最終的に結果を文字列に格納しました。

出力は 16 までは問題ありませんが、16 以降はシーケンスが繰り返されます。

望ましい出力:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20

電流出力 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,11,12,13,14,15

どうしてこうなるの???

これが私のコードです。

PS: 数字を理解するには、このチャートを参考にしました。

http://www.cheat-sheets.org/saved-copy/ascii.png

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

function - アセンブリ言語 (TASM) での関数の作成

ループを使用して最初の 20 の数字を出力したかったのです。

16 進数と 10 進数のコードは同じであるため、最初の 9 つの数値を出力することはまったく問題ありませんが、10 番目の数値からは、各数値を適切なコードに変換し、それを変換して文字列に保存し、最終的に表示する必要がありました。

あれは、

次に、各数値を回転およびシフトして、目的の出力数値を取得します。つまり、

そして、結果を文字列に格納して表示します。つまり、

そして、これが適切なコメント付きの完全なコードです。

コードを何度も繰り返すのではなく、関数を作成し、if/else (ジャンプ) を使用して目的の出力を取得する適切な方法はありますか?

疑似コード:

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

assembly - TASM:負の数のモジュロ

たとえば、-1%3とすると、結果は2になると思います。

次のTASM命令を実行すると、予期しない結果が発生します。

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

assembly - dosbox でのターボ リンカー エラー 2003

dosbox で Turbo Linker (tlink) を実行しようとすると、何らかの理由で失敗します。

私は Windows7 64bit を使用しているため、turbo asm と turbo linker を実行できません。

tlink/t hw1dosbox で実行していたところ、次のメッセージが表示されました。

このエラーを解決する方法を知っていますか? そして、なぜそれが起こるのですか?

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

loops - 8086アセンブリ言語のネストされたループ

このプログラムで目的の出力を取得するためにループをどの程度正確に使用する必要があるかについて問題があります。

私がやりたいのは、ユーザーから任意の番号を入力し、その番号を降順で並べ替えることです。

コメントのコードのすべてのステップを説明するために、ここで最善を尽くしました。

これが私のコードです、

私が立ち往生しているネストされたループを手伝ってください。

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

assembly - asm ファイルの結果を表示する

Windows 7 64ビットでTasmを使用して次のプログラムをアセンブルしようとしています:

ファイル名はprog4.asm

私は次の手順に従いました:

これを EMU8086 シミュレーターで実行できますが、DOSBOX でコマンドの実行を確認できません。

加算コマンド後のレジスタ値を表示するにはどうすればよいですか?

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

assembly - 割り込み 21、AH=0ah の使い方がわかりません

私の情報はここから来ています。この割り当てでは、20 文字以内で読み取り、それらの文字を大文字に変換し、入力を大文字として出力するプログラムを要求します。

int21/AH=0ah からの入力にアクセスする方法がわかりません。上記のリンクを理解しない限り、これ以上正確な質問をすることはできません。誰か説明できますか?また、違いがある場合はTASMを使用しています。また、これをfreedosでテストしています。

更新1:

わかりました、あなたの助けのおかげで、割り込みを設定する必要があり、動作する方法を理解できたと思います.

セットアップ: このバッファを存在させたい ds:dx を指定する必要があります

ds:dx を 20 に設定する必要があります (これにより、バッファーが保持できる最大文字数が設定されます)

ds:dx+1 を 0 に設定する必要があります (これにより、読み込む最小文字数を何らかの方法で設定できると思います)。

実際に int21/AH=0ah を呼び出します。これは ds:dx に移動し、プリセット バイトを解釈します。入力を待っている間、プログラムを停止します

int21/AH=0ah は ds:dx+2+n から私の入力を埋めます (n は '\r' を含む入力文字数です)

私の質問は今、どうすればこれを行うことができるかです。x86 Assembly Language Reference をもう一度調べましたが、まだ役立つものを見つけることができませんでした。

これまでに入手したコード

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

assembly - TASMのローカルラベル:シンボルはすでに定義されています

プログラムで一般的なラベルにプレフィックスが使用されないように、プロシージャでローカルラベルを使用したいと思います。ローカルラベル(@@)を使ってみました。私の本によると、「ローカルラベルの寿命は、次の非ローカルラベルまで前後にしか伸びません」。ただし、ファイルをコンパイルしようとすると、次のエラーメッセージが返されます。

ソースコードは次のとおりです。

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

assembly - Tasmはインクルードファイルを見つけることができません

program.asmの中にtasmディレクティブを含むファイルをインクルードします

ただし、「ファイルfile.asmが見つかりません」というエラーが表示されます。このファイルは、ソースコードであるD:\sourceと同じディレクトリにあります。TasmはディレクトリにありD:\tasmます。TASM.CFGその行のあるtasm/binディレクトリにファイルを作成しようとしまし/iD:\sourceたが、それは役に立ちませんでした。file.asmまた、をディレクトリに移動しようとしましたがtasm/bin、それも役に立ちませんでした。また、includeディレクティブでフルパスを指定しようとしました

それも役に立ちませんでした。