問題タブ [gnu-assembler]

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

gcc - アーム アセンブリ: '#define' リスク

ARM アセンブリで

正常に動作します。#define MODE 0x1f今、私は上記のコードを に変更したいと思いますbic r0,r0, #MODE

ここにはリスクがあります。が定義されているヘッダー ファイルをインクルードするのを忘れた場合#define MODE 0x1f、gcc は問題なくアセンブルしますが、結果は間違っています。コンパイラ#MODEは 0 として変換します。

問題の原因が " " であることを証明しました##これはアセンブリで使用されるため、「#」を処理しないようにプリプロセッサに指示するにはどうすればよいですか?

ありがとう

0 投票する
5 に答える
26902 参照

linux - Linux に GAS (GNU Compiler) をインストールして使用するには?

私は Ubuntu を使用しており、Linux 用のアセンブラー・コンパイラーを探していたところ、GAS を見つけました。

インストールして実行しようとしていますが、できません。

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

macos - gdbメモリアクセスの苦情の詳細

as(アセンブラコードから)を使用してコンパイルされたオブジェクトファイルがあります。

ldを使用してリンクすると、 stepi(またはnexti )を実行しようとすると、gdbはアドレス0x0でのメモリアクセスについて文句を言います。gccを使用してリンクすると、すべて問題ありません。

この問題は、 gccのリンク結果と比較して生成されるセクションが少ないldが原因であると推測しています。

実行可能ファイルの何が問題になっているのかを理解できるように、gdbをより詳細に構成する方法はありますか?

PS:実行可能ファイル自体は、両方のバージョンで期待どおりに実行されます。

後で編集:コンパイルに使用したコマンド:

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

assembly - GAS ELFは、ディレクティブ.type、.thumb、.size、および.sectionが必要なのはいつですか。

GNUを使用して、ARM Cortex-M3ベースのマイクロコントローラー(Thumb 2命令セット)のアセンブリプログラムに取り組んでいます。

いくつかのサンプルコードでは、のようなディレクティブを見つけ.sizeました。これはELFディレクティブであると理解しています.section.type例として:



ディレクティブは、シンボルのタイプを設定すると言われています。.type通常は、%object(データを意味しますか?)または%functionのいずれかになります。それがどのような違いを生むのかわかりません。必ずしも含まれているわけではないので、いつ使用する必要があるのか​​わかりません。

これに関連するのは.thumb_funcディレクティブです。私が読んだことから、それは以下と同等であるように思われます:

それとも完全に違うものですか?



.sizeおそらくシンボルに関連付けられたサイズを設定します。これが必要なとき、私にはわかりません。これはデフォルトで計算されますが、このディレクティブでオーバーライドできますか?もしそうなら-いつオーバーライドしたいですか?



.sectionドキュメントを見つけるのは簡単で、それが何をするのかについてはかなりの考えがあると思いますが、それでも使用法については少しわかりません。text私の理解では、さまざまなELFセクション(コード、data書き込み可能データ、bss初期化されていないデータ、定数など)を切り替え、rodata必要に応じて新しいセクションを定義します。コード、データ、初期化されていないデータなどを定義するかどうかに応じて、これらを切り替えると思います。しかし、上記の例のように、なぜ関数のサブセクションを作成するのでしょうか。


これに関するどんな助けもありがたいです。これをより詳細に説明するチュートリアルまたはドキュメントへのリンクを見つけることができれば(できれば初心者には理解できるでしょう)、私は非常に感謝しています。

これまでのところ、「マニュアルとしての使用」はある程度役に立ちました。おそらく、より多くの知識があれば、私よりも多くのことを学ぶことができます。

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

assembly - Gnu AS 式では「&」演算子を使用できません

変数のアドレスを取得し、4096 (メモリ ページのアドレスに対応する) で処理したいと考えています。これはオフラインで計算できるものなので、次のようにしました (v は変数で、vpage にはそのページのアドレスが含まれている必要があります)。

このファイルを x86 アセンブラーでコンパイルしようとすると、次のエラーが発生します。

なぜGASはこれを計算することを拒否するのでしょうか? 奇妙な部分:「&」を「+」に置き換えると、コードがコンパイルされ、リンク後にアドレスが正しく計算されます。この動作の理由や修正方法についてのヒントは大歓迎です。

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

c - IntelインラインasmをAT&Tに変換して、gccでコンパイルできるようにするためのサポートが必要です

これは元のコードです:

道化師のおかげで、私は今これを持っています:

明らかに、gccはclflushで揮発性を好まない。みんな、ありがとう。

VB6アプリで使用できるように、dllとしてgccを使用してSlicing-By-8をコンパイルしようとしています。

0 投票する
4 に答える
11357 参照

c - cからアセンブリ関数を呼び出す

Cプロジェクトから呼び出された関数をアセンブリで使用しようとしています。この関数は、たとえばlibc関数を呼び出すことになっていますprintf()が、セグメンテーション違反が発生し続けます。

.cファイルには、関数の宣言があります。

.asmファイルに私が持っている

ポインタのコメントをいただければ幸いです

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

assembly - アセンブリ無限ループ

x86アセンブリを使った私の物語は続きます。私はこのコードで無限ループに入り、少し戸惑っています。

do_exitへのジャンプを期待しています: %ecxが4に達すると、反復ごとに増分されるため

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

c - 配列を外部アセンブリ関数に渡す

どういうわけか、cからのこの呼び出しアセンブリ関数に関連しています

私はその関数にintと長さの配列を渡します:

組立部品はこんな感じ

len引数12(%ebp)を出力できますが、配列の最初の要素である%edxで同じことを試みるたびに、セグメンテーション違反が発生します。

次に、データでいっぱいになります。

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

assembly - ELF 形式の .section を GNU GAS で読み取り専用にするにはどうすればよいですか?

私が理解しているように、これらは.sectionディレクティブです:

COFF 形式が使用された場合の「古い」ディレクティブには「読み取り専用」がありました。

ELF 形式の .section を読み取り専用にするにはどうすればよいですか? 指定子がまったくない?