그래서 저는 과제를 수행하고 있으며이 유형의 코드에서 배열을 이해하는 데 문제가 있습니다 (이 내용에 대한 지식이 제한되어 있음을 명심하십시오). 내 코드는 사용자에게 SDWORD의 배열에 넣을 값의 수를 입력 한 다음 사용자가 숫자를 입력하는 프로 시저를 만들도록 요청합니다. 나는 ("카운트"에 저장된) 금액을 사용자에게 묻는 부분을 가지고 있지만 다른 프로 시저 파트로 어려움을 겪고 있습니다. 예를 들어 아래 코드를 입력하면 5를 입력하면 필요한 프로 시저가 필요합니다. 배열로 들어갈 5 개의 숫자를 입력하십시오.배열 만들기 및 값 추가
내가 직면하고있는 문제는 실제로 배열을 설정하는 방법을 모르겠다는 것입니다. 그것은 2와 12 사이의 어느 곳에서든지 포함 할 수 있는데, 이는 아래의 코드에서 비교를 설정 한 이유입니다. 그 말이면 난 데 문제가 잘 모르겠어요 것입니다 ... 이제 그들은 5 개 개의 번호를 입력하는 사용자 입력과 내가 같은를 설정하는 것이 예를 들어 말을
.data
array SDWORD 5
하자 배열 것 5 개의 값을 유지하거나 배열의 하나의 값이 5 인 경우 배열의 값의 양이 "count"와 같아야합니다. 아래에서 설정 한대로 "개수"는 사용자가 입력 할 금액입니다.
또한 내가 분명히EnterValues PROC
return
EnterValues ENDP
난 그냥 이런 식으로 뭔가를 구현하는 방법을 모른다 ... 이런 절차를 설정하는 방법을 알고있다. 내가 온라인으로 한 모든 연구는 나를 혼란에 빠뜨리는 것일뿐입니다. 실제로 찾은 예제 중 아무 것도 실제로 숫자를 입력하기 전에 얼마나 많은 숫자가 배열이 될지 물어보십시오. 내가 말한 것이 의미가 있기를 바랍니다. 내가 할 수있는 일에 대한 모든 의견은 훌륭합니다!
INCLUDE Irvine32.inc
.data
count SDWORD ?
prompt1 BYTE "Enter the number of values to sort",0
prompt2 BYTE "Error. The number must be between 2 and 12",0
.code
Error PROC
mov edx, OFFSET prompt2
call WriteString
exit ; exit ends program after error occures
Error ENDP
main PROC
mov edx, OFFSET prompt1
call WriteString ; prints out prompt1
call ReadInt
mov count, eax ; save returned value from eax to count
cmp count, 12
jle Loop1 ; If count is less than or equal to 12 jump to Loop1, otherwise continue with Error procedure
call Error ; performs Error procedure which will end the program
Loop1: cmp count, 2
jge Loop2 ; If count is greater than or equal to 2 jump to Loop2, otherwise continue with Error procedure
call Error ; performs Error procedure which will end the program
Loop2: exit
main ENDP
END main
============ 나는이 함께했다
편집 ============== ...
EnterValues PROC
mov ecx, count
mov edx, 0
Loop3:
mov eax, ArrayOfInputs[edx * 4]
call WriteInt
call CrLf
inc edx
dec ecx
jnz Loop3
ret
EnterValues ENDP
고마워요! 나는 뭔가를 생각해 내고 결국 질문의 끝에 그것을 추가했다. 그걸 살펴보고 이해가되는지 알려주시겠습니까? 감사! –
또한 배열의 이름을 ArrayOfInputs로 변경했기 때문에 ArrayOfInputs와 다른 점을 알고 싶습니다. –
@ V.Valdes : 예, 그 의미가 있으며 좋은 스타일을 보여줍니다. 프로 시저로 출처를 밝히고, 명확한 구조 (스파게티가 없습니다), 의미있는 기호 이름, 잘 형식화 된, – rkhb