nasm

    8

    2答えて

    私はブートローダを書いているので、NASMを学んでいます。これまでのところ、私には世界のブートローダがあります。私はcプログラムをリンクする方法を知りたいし、ブートローダにメモリにロードさせて、エントリポイントの実行を開始させたい。私はNASMのn00bですので、NASMコードが必要です。ご協力いただきありがとうございます。 EDIT:基本的に私はcプログラムをリンクする方法を知る必要があり、私は

    0

    1答えて

    今私はアセンブラ(NASMを使って)を少し学びました。プログラムをデバッグするのにgdbを使いたいのです。 特定のアドレスまたは特定のフィールドの値を表示するオプションはありますか?例えば : variable resd 2 Iは、マーカー変数で入手可能であり、メモリの2つの* 4バイトを予約。 アドレス[variable+4]の値をデバッグするにはどうすればよいですか?

    2

    3答えて

    FASMでコンパイルされたNASMコードを実行するのに十分なことがありました。 buffer times 64 db 0 これはNASMではなく、FASMで正常に動作します - 私が書かなければならなかった: buffer db 0, 0, 0, 0, 0, 0, ... これを行うために、よりコンパクトな方法があるに違いありません。あなたはおそらく探している

    0

    1答えて

    分岐テーブルについて質問があります。 、このようなテーブルを宣言するために2つの方法があります:コードセクタのデータセクター(DS) (CS) いただきまし異なるこの方法の間で は? 私はこの次の例を学びました: ケース1: SECTION .data i dd 2; stab dd m1,m2,m3 ; branchtable for switch SECTION .text

    6

    2答えて

    私はthis記事、 を読んでいたし、ある時点でそれは私にこのNASMプログラムできます: ; tiny.asm BITS 32 GLOBAL main SECTION .text main: mov eax, 42 ret をし、次のコマンドを実行するために私に語った: ld: warning: option -s is obsolete and be

    4

    1答えて

    私はLinuxで基本asmを学ぼうとしていますが、私は非常に良いリファレンスを見つけることができません。 NASMのドキュメントは、すでにあなたがmasmを知っていると仮定しているようです... cmp(インテルの命令リファレンス以外)のドキュメントには例が見つかりませんでした。 私はstdinから1バイトを読み込んでstdoutに書き込むプログラムを書いていました。以下は、EOFに達したときにs

    2

    1答えて

    0xffバイトをパラレルポート0x378に書き込もうとしています。問題なくコンパイルしてリンクしますが、OUTSB命令ではセグメンテーションが失敗します。 section .text global _start _err_exit: mov eax, 1 mov ebx, 1 int 80h _start: mov eax

    1

    1答えて

    私はx86プロセッサ上で実行されるアセンブリ言語の電卓を作っています。 基本的に、私の電卓は、2つの数字を入力して、どの操作(加算、減算、乗算、除算)をしたいのかをユーザーに尋ねます。 、減算を追加し、正しくを乗算したがを分割することができませんでしある 私の電卓。部門を作る際には、常に結果として1を得る。 その後、私は自分のアプリケーションのコードの完全なを残す: section .data

    2

    2答えて

    私はこのC++コードを持っている:私はシェル(64ビットのLinux)で行うとき #include <iostream> using namespace std; int main() { char chr[] = "111111111111"; int pop = 9999; cout << chr << (pop+1) << endl; } をg+

    0

    1答えて

    printfを使用せずにfloat値を出力しようとしています アイデアはありますか? アイデア....私は値を通過するために登録するXMM0使用する必要があるのprintfと知っているが、整数iについては、汎用レジスタを使うのか?