어셈블리에서 시작하여 eax 값을 인쇄하기위한 간단한 루프를 만들려고 시도하지만 작동하지 않으며 여기에서 내가하는 일을 완전히 확신하지 못합니다.어셈블리 루프에서 값을 인쇄하지 않습니다.
global _main ; make visible for linker
extern _printf ; link with printf
; -------------------------------
section .const
hello db `Hello world! %d \n\0`; 0 on stringi lõpp.
arv dw 5 ; %d võimaldab stringis arvu näidata.
otsitav dw 10 ;10 on reavahetus
vastus dw 0 ;dw läheb arvule
section .text
; -------------------------------
_main:
mov eax, otsitav ; Annan eax-le kasutaja sisestatud väärtuse.
mov ebx, 1 ; Annab ebx-le väärtuse 1 - sealt alustab for tsükliga.
.loop1:
dec eax ; võtab eax-ilt ühe ära.
push eax
call _printf
add esp, 4 ; tasakaalustab.
cmp eax, 0 ; eax ? 0
je .loop1 ; kui ? asemele saab = panna siis hüppa .loop1 juurde
ret
'printf'에는 사용자가 지정한 나머지 인수를 해석 할 수있는 형식 문자열이 필요합니다. 또한, 함수 호출에서 값을 유지하는'eax '에 의존하지 마십시오. – Michael