問題タブ [masm]
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 - アセンブリプログラミングでスタックの開始アドレスを取得する
アセンブリプログラミングでプッシュやポップなどのスタック操作を完了した後、スタックの有効な開始アドレスを取得することは可能ですか?
visual-studio - デバッグ時にVisualStudioに常に「すべてを再構築」させる
編集:基本的に必要なのは、デバッグを押したときにVisualStudioが常にすべてを再構築することです。
私は現在、ビジュアルスタジオを使用してアセンブリプログラムをコンパイルしています。MASMを使用しており、一般的には正常に機能しています。
しかし、私は厄介な問題に遭遇しました:
このようなファイル(たとえば、関数を含むファイル)を含めると
そしてそれをコンパイルすると、元々は正常に動作します。ただし、functions.incの内容を変更すると、これは認識されず、コンパイラーはfunctions.incをスキップして、変更前の古いバージョンを使用します。
これを修正するためのオプションがプロジェクトのプロパティの下に見つかりません。ただし、リンカーオプションなどと関係があると確信しています。プロジェクトのプロパティで変更を加えると(何かを変更して元に戻し、[OK]を押しても)、新しいバージョンの関数.inc。
何か案は?
assembly - MOV src、dest(または)MOV dest、src?
MOVは、おそらく、ASMを学びながら誰もが学ぶ最初の指示です。
ちょうど今、私はIA32アーキテクチャ用のGNU /LinuxでのAssemblyLanguageProgrammingという本に出会いました。RajatMoona著:(壊れたリンクは削除されました)
しかし、私はそれがであることを学びましたMOV dest, src
。「Loadwith」のようなものdest
ですsrc
。ウィキでも同じことを言っています。
著者が間違っていると言っているのではありません。私は彼が正しいことを知っています。しかし、私はここで何が欠けていますか?
as
ところで..彼はこれらの命令を組み立てるためにGCCを使用しています。しかし、それは命令構文を正しく変更するべきではありませんか?
assembly - ByTEをMasmでDWORDとして読み取る
もう一度、MASMプログラミングを行っています。Irvine32ライブラリを使用してプロシージャを作成しようとしています。このライブラリでは、ReadStringを使用してBYTEの配列に配置される文字列をユーザーが入力します。次に、そのアレーをループして、各文字が数字であるかどうかを判別します。しかし、私が試してみると
MASMは、同じサイズではない2つのものを比較することについて不平を言います。とにかく、配列内の各BYTEのASCIIコードをDWORDとして読み取ることができますか(または、各BYTEのASCII値を抽出できますか)?
assembly - エラー A2070: SSE MASM64 の命令オペランドが無効です
これを ml64.exe 64 ビット (masm64) でコンパイルすると、SSE コマンドでエラーが表示されます。SSE コマンドを 64 ビットに含めるにはどうすればよいですか?
エラーが発生します:
string - MASM StrCmpが未定義ですか?
次のコードをアセンブルしようとすると、A2006エラーが発生します(エラーA2006:未定義のシンボル:StrCmp)。
これが私のコードです:
私はアセンブラーで完全なn00bであり、それを学ぼうとしています。;)
イヴァン
c++ - MASMアセンブラの「Link Map」出力と「Assume」ディレクティブについての質問
MASM初心者です。したがって、質問は非常に基本的なものになる可能性があります。
MASM アセンブラを使用すると、「Link Map」という出力ファイルが作成されます。その内容は、データ セグメント、コード セグメント、スタック セグメントなど、さまざまなセグメントの開始オフセットと長さで構成されます。これらの情報はどこに記述されているのでしょうか。彼らは、EXE ファイル内にさまざまなセグメントがどのように配置されているか、またはプログラム ローダーによって EXE ファイルがメモリにロードされた後、メモリ内にセグメントがどのように配置されているかについて話しているのですか?
ところで: "Assume" ディレクティブは何をしますか? 私の理解では、プログラムローダーがそれを使用してDS、CS、SS、ESレジスタを適宜設定できるように、アセンブラにいくつかの情報をexeファイルヘッダーに出力するように指示します。私はこれで正しいですか?
前もって感謝します。
assembly - MASM/MASM64 からコンパイル時にアーキテクチャを検出する
ターゲット アーキテクチャが I386 または AMD64 であるかどうかを ASM ソース ファイルからコンパイル時に検出するにはどうすればよいですか?
masm(ml.exe)/masm64(ml64.exe) を使用して file32.asm と file64.asm をアセンブルしています。アーキテクチャに応じて、file32.asm または file64.asm のいずれかを含む単一のファイル file.asm を作成すると便利です。理想的には、次のようなものを書きたいと思います。
また、必要に応じて、ml.exe と ml64.exe を別のコマンド ライン オプションで実行できます。
ありがとう!
assembly - この配列宣言が次の配列宣言に侵入するのはなぜですか?
Microsoft Visual C ++ Express Editionを使用して、MASMでIA-32のアセンブリを学習していますが、この問題が発生しました。私がこれをするとき:
fileName文字列はプロセスの途中で消去されるため、このプログラムは正しく実行されません。Irvine32.incライブラリは、KipIrvineのWebサイトにあります。私の教授が使用している教科書は、キップ・アーバインによる「Intelベースのコンピューター用のアセンブリ言語」第5版であるため、私はそれを使用しています。このための変数宣言を変更すると、次のようになります。
プログラムは正しく実行されます。
fileName変数はfibonacciVetorの終了直後に割り当てる必要があり、配列に書き込むときに影響を受けないため、宣言の順序を変更するだけでプログラムの実行方法に影響するのはなぜですか?
どうもありがとうございます。
windows - ファイルioのmasmのツール
masmのファイルを操作するにはどうすればよいですか。マイクロソフト(masm)に含まれている標準ライブラリを使用することを意味します。または、linkinkライブラリのないWindowsで利用できるもの。