TITLE 11월 3일 실습 스택사용
INCLUDE Irvine32.inc
arraySize = 10
.data
prompt1 BYTE "Enter Your Name : ",0
prompt2 BYTE "Reverse String : ",0
inputName BYTE 80 DUP(0) ;이름
byteCount DWORD ? ;입력받은 문자수
.code
main PROC
mov edx, OFFSET prompt1
call WriteString
;이름 입력
mov edx, OFFSET inputName ;ReadString의 오프셋
mov ecx, SIZEOF inputName ;ReadString의 최대 문자수에 1을 더한값
call ReadString
mov byteCount, eax ;문자의 수
call Crlf
;스택에 push
mov ecx, byteCount ;입력된 문자수 만큼만 푸시
mov esi, 0
L1:
movzx eax, inputName[esi]
push eax
inc esi
Loop L1
;스택의 내용을 pop
mov ecx, byteCount ;입력된 문자수 만큼만 푸시
mov esi, 0
L2:
pop eax
mov inputName[esi], al
inc esi
Loop L2
;역으로 출력
mov edx, OFFSET prompt2
call WriteString
mov edx, OFFSET inputName
call WriteString
call Crlf
call Crlf
exit
main ENDP
END main