키보드에서 배열까지 10 개의 숫자를 읽은 다음 쓰는 것이 큰 문제가 있습니다.NASM x64 배열을 읽고 번호를 쓰십시오.
mov rcx, arr + qword [n]*8
- 실제로 오류가 발생하기 때문에 올바르게 수정하는 방법을 모르겠습니다. 또한 다음과 같이 숫자를 읽으려는 경우 mov rdx, 1
을 어떻게 설정해야합니까? 12 123 1234 숫자뿐 아니라?
나는 모든 종류의 도움에 감사 할 것입니다.
global main
section .text
main:
mov rbp, rsp; for correct debugging
mov rdi, 0
_in:
mov rax, 3
mov rbx, 0
mov rcx, arr + rdi*8
mov rdx, 1
int 80h
mov rax, 3
mov rbx, 0
mov rcx, blank
mov rdx, 1
int 80h
inc qword [n]
cmp qword [n], 10
jz _next
jmp _in
inc rdi
_next:
mov qword [n], 0
mov rdi, 0
_out:
mov rax, 4
mov rbx, 1
mov rcx, arr + rdi*8
mov rdx, 1
int 80h
mov rax, 4
mov rbx, 1
mov rcx, nl
mov rdx, 1
int 80h
inc qword [n]
cmp qword [n], 10
jz _end
jmp _out
inc rdi
_end:
mov rax, 1
mov rbx, 0
ret
section .data
arr times 10 dq 0
blank db 0
n dq 0
nl db 10
색인을 생성하려면 'n'을 레지스터에로드해야합니다. 귀하의 질문의 나머지 부분은 명확하지 않습니다. – Jester
불투명하지만 미안하지만 영어가 모국어가 아닙니다. 나는 mov rdx를 수정할 때 2를 의미합니다. 11과 같은 키보드에서 숫자를 읽을 수 있습니다. mov rdx를 수정할 때 3, 111과 같은 숫자를 읽을 수 있습니다. 모든 가능한 길이의 길이를 읽고 싶습니다. –
숫자로 루프 숫자로 읽으시겠습니까? – Jester