(C terminallogy에 있음)을 다른 루틴에서 시작하고 시작 루틴 (엔트리 포인트)에서 인쇄하지 않겠습니다. 하지만 그것은 seg 오류를 받았습니다 :왜이 오류가 발생합니까?
format ELF executable 3
entry start
segment readable executable
start:
pop ebx ;argc
pop ebp ;argv[0]
call printarg
;; exit
xor ebx,ebx
mov eax,1
int 80h
printarg:
pop ebp ;argv[1]
call puts
ret
puts:
pusha
mov eax,ebp
xor edx,edx
;; get string length
.loop1:
cmp byte [eax],0
je .loop2
inc eax
inc edx
jmp .loop1
;; print it
.loop2:
mov eax,4
mov ebx,1
mov ecx,ebp
int 80h
;print a new line
mov eax,4
mov ebx,1
mov ecx,NL
mov edx,1
int 80h
popa
ret
segment readable writeable
NL db 0xA
누군가가 설명 할 수 있습니까?
이 숙제가 있습니까? – fons
번호 :(정말 보이십니까? – Jack