このアセンブリ コードが正常にアセンブルおよびリンクされるのに、実行時にセグメント エラーが表示されるのはなぜですか。指示の後にコメントして、私がやりたいことを考えました。
jmp short init
action:
pop esi
xor eax, eax
mov byte [esi+24], al ;null terminating the string.
mov dword [esi+25],24 ;length of the string
mov al,4 ;syscall write
mov ebx,1 ;standard out
lea ecx,[esi] ;<<---------- Unsure about this. probably load the address of the string to ecx
mov edx,[esi+25] ;<<-- load edx with string length
int 80h
init:
call action
db "what a pity! not working#LLLL"
NASM
組み立てld
てリンクするために使用しています。このプログラムは 64 ビット マシンで実行されますが、32 ビット互換にしたいと考えています。