自分はubuntuで動くアセンブリ言語のプログラムを作りましたが予想したように動かず質問させて頂きます。アセンブリはnasmです
【プログラムの説明】PSP(プログラムセグメントプリフィックス)に格納されている文字列の引数を読み込み再び出力するプログラムです。
【利用した考え方】
・まずPSPの80H番地に引数の文字数が格納されている
・82H番地から引数が文字列として格納されている
【実行方法】
端末にて
nasm -f elf64 filename.asm
ld -s -o filename filename.o
./filename abcd ←abcdが文字引数として格納されますよね?
これを実行するとコアダンプが起こります
【プログラム 及びその説明】
section .bss
buffer: resb 1024h
nub: resb 1h
section .text
global _start
_start:
mov edx, 80h
mov ecx, [edx]
mov edx, 82
mov ebx, buffer
mov [nub], ecx
cope: ;引数をbufferに格納している コピーは文字引数の数を参考している
mov eax, [edx]
mov [ebx], eax
xor eax, eax
inc edx
inc ebx
loop cope
print0:
mov edx, [nub]
mov eax, 4
mov ebx, 1
mov ecx, buffer
int 80h
end:
mov eax,1
int 80h
改善法やもし誤った認識があれば教えてください
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー