페이지

2014. 11. 11.

[MASM] 스택 사용2( 정수)

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