Linux アセンブリを試してみたところ、次の問題が発生しました。私は始めたばかりなので、私のプログラムは、linuxassembly で見つけたいくつかの例から派生した比較的単純なものです。コマンドラインに渡された最初の引数を受け取り、それを出力します。これが私がこれまでに持っているものです...
section .bss
test_string: resb 3
section .text
global _start
_start:
pop ebx ;argument number
pop ebx ;program name
pop ebx ;first argument
mov [test_string],ebx
mov eax,4
mov ebx,1
mov ecx,test_string
mov edx,3
int 80h
mov eax,1
mov ebx,0
int 80h
これはよく書かれていないことはわかっていますが、私はこれに慣れていないので、先に進む前にアセンブリ命令/変数がどのように機能するかをよりよく理解しようとしています. を使用して組み立ててリンクします...
nasm -f elf first.asm
ld -m elf_i386 -s -o first first.o
次に、..を使用して実行します
./first one two
印刷されると思っていたのですone
が、意味不明なように印刷されY*&
ます。私は何を間違っていますか?私test_string
のタイプは間違っていますか?