nasm

    0

    1答えて

    ワード配列に最大値を返すプロシージャを作成しようとしました。 私はローカル変数をhereという表記規則で割り当てました。 しかし、私はローカル変数に値を移動しようとすると、それは私に、このエラーを与える:ここで invalid combination of opcode and operands は私のコードです: greatest: push ebp mov ebp, es

    1

    1答えて

    環境:Windows 10.私はldのMinGWバージョンを使用してリンクしていますが、ビジュアルスタジオlink.exeを使用すればもっと簡単にできます。 私はNASMで次の基本的なプログラムを持っている: global _main extern _printf section .text _main: push message call _print

    0

    1答えて

    は私が $ man ld 彼らは-sオプションのために提供してきました定義を試みたが、少し理解の私のレベルを超えていました。シンボルの剥ぎ取りはどういう意味ですか?役に立つと思われるリンクを指定してください。ありがとうございました。

    0

    1答えて

    初期化されたデータセクションに5つの文字列を保持するデータ配列を作成します。各文字列は正確に4文字です。各文字列には、最初の文字列の場合は「abcd」、2番目の文字列の場合は「efgh」などの初期データがいくつかあります。ヌル\0文字列には文字は必要ありません。どのようにアセンブリ言語で文字列の配列を初期化できますか? これは私がこれまでに考えることができるものである。 string db "ab

    1

    1答えて

    1つの番号をとり、それを印刷したアセンブリプログラムを作成しようとしました。しかし、私が1を書いたとき、それは4171を書きました。なぜ、どうすればいいですか?私は、64ビットアセンブリを使用しています、私はnasm -f macho64 scanf.asmとそれを組み立て、gcc -o scanf scanf.o -Wl,-no-pieでリンクしました。そして、私はスキャンマクロ(varible

    0

    1答えて

    これは簡単な問題ですが、頭が回転しています。私は文字列(負の10進数として入力)を符号なし整数に変換する必要があります。 rdiレジスタは、変換される文字列を保持します。 raxレジスタは結果を保持します。 xor rsi, rsi xor rax, rax xor dl, dl xor rdx, rdx convert: mov dl, [rdi+rsi

    1

    2答えて

    これで、少し面白いためにアセンブリをやりとりした後、私は今、呼び出しプロシージャに固執しています。 ... _start: push dword len push dword msg call print mov eax, SYS_EXIT mov ebx, 0 int 80h print: ; *char (message),

    0

    1答えて

    私はNASMアセンブリプログラムでstrstr C関数を使用しようとしていますが、正しく印刷されないようです。私はこれを複数試してみましたが、printfや '(null)'に返される空白行を取得すると、Cからポインタ値を返す方法を誤解している可能性があります。私はなぜ私は正しい戻り値を印刷することができないように私を埋めるのを助けることができますか? section .data st

    0

    2答えて

    私は非常に単純なアセンブリプログラムを実行しようとしていますが、私は何でもsegfaultsを取得するようです。 はここに私のコードです section .data buffer times 50 db 97 pointer db 0 section .text global _start _start: mov ECX , pointer

    2

    1答えて

    私はUbuntu 16.04でnasmを使用していますが、現在C memmove()の機能を再コードしようとしています。ここで は私のコードです: BITS 64 global memmove memmove: push rbp mov rbp, rsp xor rcx, rcx while: cmp rcx, rdx je