TITLE 11월 3일 실습 스택사용
INCLUDE Irvine32.inc
.data
prompt3 BYTE "입력할 정수의 갯수 : ",0
prompt4 BYTE "정수 입력 : ",0
prompt5 BYTE "Reverse Integer Array : ",0
input DWORD ? ;입력받을 정수갯수
intArray SDWORD arraySize DUP(?);정수를 저장할 정수 배열
mov edx, OFFSET prompt3
call WriteString
call ReadDec ;입력 갯수라서 부호없는 정수사용
mov input, eax
arraySize = input ;등호디릭티브로 배열크기 조정
call Crlf
;정수를 배열에 입력
mov ecx, input
mov esi, 0
L3:
mov edx, OFFSET prompt4
call WriteString
call ReadInt
mov intArray[esi], eax
add esi, TYPE intArray
call Crlf
Loop L3
;배열의 내용을 스택에 푸시
mov ecx, input
mov esi, 0
L4:
mov eax, intArray[esi]
push eax
add esi, TYPE intArray
Loop L4
;스택을 팝하여 역순으로 출력
;원 정수 배열은 변경되지 않음
mov ecx, input
mov edx, OFFSET prompt5
call WriteString
L5:
pop eax
call WriteInt
Loop L5
call Crlf
exit
main ENDP
END main