問題タブ [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.
assembly - 変数を DECIMAL 文字列に変換して印刷するにはどうすればよいですか?
X変数を10進数に変換する予定です。ターボアセンブラーを使うのに苦労しています。手を貸してもらえますか?
どうもありがとう
assembly - TurboShell/TurboAsmでの`Var2DW Var1`はどういう意味ですか?
次のコードが完全にコンパイルされるのはなぜですか?
「Var2DwVar1」という行はどういう意味ですか?を定義する型の後には、即値のみが続くと思いました。
assembly - 8086 アセンブリ - DIV が猿になり、IP が際限なく奇妙な場所にジャンプする
関連する情報が見つからず、この問題に1日ほど悩まされています..
私のコードには、数字(例:259)を取り、その数字を配列スロットに分割するこの部分があります。
私はターボデバッガーでそれをデバッグしてきました..最初の部門は正常に動作します。(25 は ax に、9 は dx に).. 次の除算では、IP は ape になり、コマンド "db FE" にジャンプし、無限ループで何度もジャンプします。
私は一体何を間違っているのですか?質問:
gcc - gcc は NASM アセンブリを出力する方法を本当に知っていますか?
したがって、mainに渡された引数をループしてから返す単純なCプログラムがあります。
gcc がアセンブリを NASM 形式で書き出す方法を確認したかったのです。.asm ファイルの出力を調べていたところ、構文が TASM であることがわかりました。以下は、make ファイルと gcc からの出力です。私は何か間違ったことをしていますか、それとも gcc が真の NASM 構文を出力しないのでしょうか?
と
コマンドラインのエラーは次のとおりです。
これが TASM 構文であると信じるようになったのは、次のリンクに投稿された情報でした: http://rs1.szif.hu/~tomcat/win32/intro.txt
TASM コーダーは、TASM で広く使用されている「ptr」キーワードがないため、通常、NASM で字句の問題を抱えています。
TASM はこれを使用します。
mov al, byte ptr [ds:si] または mov ax, word ptr [ds:si] または mov eax, dword ptr [ds:si]
NASM の場合、これは単純に次のように変換されます。
mov al, byte [ds:si] または mov ax, word [ds:si] または mov eax, dword [ds:si]
NASM では、これらのサイズ キーワードを多くの場所で使用できるため、生成されたオペコードを統一的に制御できます。たとえば、これらはすべて有効です。
push dword 123 jmp [ds: word 1234] ; これらは両方とも、オフセット jmp [ds: dword 1234] のサイズを指定します。32 ビットと . 16ビットセグメント
かなり複雑になる可能性がありますが、覚えておくべき重要なことは、必要なときに必要なすべての制御を行うことができるということです。
assembly - TASM のパラメータを持つ関数
パラメータ付きの関数を使用するアセンブリ言語の例を投稿してください。2 つの要素の合計を返す関数のような単純なもの。
十分に単純な例をグーグルで検索できませんでした。
追加した:
assembly - 8086-コマンドライン引数を配列に格納する
dos 8086(ライブラリを使用しない16ビットtasmまたはmasm)のハフマンアルゴリズムを使用してエンコード/デコード.COMプログラムを作成しており、2つのコマンドライン引数(inputfilenameとoutputfilename)を配列に格納して読み取る必要があります。入力ファイル、ハフマンエンコーディングを適用し、出力ファイルに書き込みます。
それらはアドレス80hに格納されていることを読みました。ここで、80hには引数の長さが含まれ、81h以降は引数自体が含まれます。したがって、最初の引数をinarg(および2番目の引数はまだ作業を開始していないoutarg)に格納するという考え方です。サブルーチン9での割り込み21h呼び出しの目的は、それが正しいかどうかを確認することでした。(そうではありません)
これが私がこれまでに持っているものです:
次の関連データを使用します。
区切り文字を考慮せずに基本から始め、最初の引数(入力ファイル名であるinarg)のみを取得しようとしました。
そしてそれはうまくいかないので、私は間違いなく何か間違ったことをしています。これは経験豊富なプログラマーにとっては完全に混乱しているように見えるかもしれませんが、それはインターネットで見つけたリソースをうまく追跡しようとしなかったため、これまでに理解した概念のみを使用して実装に切り替えたためです。どんな助けでも大歓迎です、ありがとう。
assembly - asm 変更コマンドの背景色
テキストの色を変更する部分を書きましたが、背景色を変更する方法が見つかりません。このコードは tasm アセンブリ用です。
これは私のコードですが、動作しません:
assembly - アセンブリで単純なプログラムを実行するとエラーが発生します
アセンブリ言語で簡単なプログラムを作成し、TASM(Turbo)とTLINKを使用して実行してみました。実行可能ファイルを実行した後、次のエラーが発生します。
2ahをBLに移動するだけの線を削除すると、完全に正常に機能します。BLに追加する値を変更しようとしましたが、それでもエラーメッセージが表示されます。エラーの原因を理解したいだけです。
ありがとうございました!
後で編集:.stack 100hを追加することで、エラーを解決できました。誰かが正確に何が起こったのか説明できますか?
assembly - パックされた BCD の印刷 (DT) - アセンブリ言語 (TASM)
アセンブリで簡単な電卓を作ってみました。私はTASM(学校の方針)を使いました。問題は、FBSTP コマンド (コプロセッサ コマンド) で保存された数値を DT 変数に出力することです。
FBSTP adr - パックド 10 進数 (DT で「adr」に定義) としてスタック (ST (0)) の一番上にある値をアドレス「adr」に格納します。スタック ポインタがデクリメントされます。変換はストア プロセス中に行われます。
プログラムをデバッグしましたが、10 で割ると結果が壊れます。例: 12*1=12。res2 の結果は正しいです。AX に移動した後も正しいですが、10 で割ると DX は 2 ではなく 8 になるため、12 ではなく 18 が出力されます。LE: Word 変数で単純な整数ストアを使用し、それを出力すると、正常に動作します。
ここに私が重要だと思うコードの部分があります:
どうもありがとう。
assembly - アセンブリ言語で絵や図形を簡単に描くことができるソフトウェアはありますか?
アセンブリ言語で絵や図形を簡単に描くことができるソフトウェアはありますか? 私はtasm 5を使用しており、メモ帳++でコードを編集し、cmdで実行しています。私は窓を使用しています。32ビット。