문제요약 : ClearScreen, GotoXY로 커서를 화면의 중간쯤 오게 한다. 두개의 정수를 입력받을 안내문 출력
합을 출력
풀이 : 커서를 화면의 중간쯤으로 보낼 프로시저를 이용한다.
전체적인 풀이는 Sum2.asm 예제를 이용한다.
GotoXY프로시저를 이용하여 커서를 중간으로 보낸다.
추가로 드는 의문 - 입력 후 행이 바뀔 때 마다 커서를 중간으로 보내는 방법은??
프로시저를 추가로 만든다.
Sum2.asm예제와 다른점 : gotoXY프로시저 이용, GoToCenter프로시저 이용(스스로 만들어야 함)
INCLUDE Irvine32.inc INTEGER_COUNT = 2 .data str1 BYTE "Enter a signed integer : ",0 str2 BYTE "The sum of the integer is: ",0 array DWORD INTEGER_COUNT DUP(?) rowval BYTE 12 ;//커서의 행 값을 저장하기 위한 변수 .code main PROC call Clrscr mov esi,OFFSET array mov ecx,INTEGER_COUNT call PromptForIntegers call ArraySum call DisplaySum exit main ENDP PromptForIntegers PROC USES ecx edx esi mov edx,OFFSET str1 L1: call GoToCenter ;//프로시저 호출로 커서를 센터로 보냄 call WriteString call ReadInt call Crlf mov [esi],eax add esi,TYPE DWORD loop L1 ret PromptForIntegers ENDP ArraySum PROC USES esi ecx mov eax,0 L1: add eax,[esi] add esi,TYPE DWORD loop L1 ret ArraySum ENDP DisplaySum PROC USES edx mov edx,OFFSET str2 call GoToCenter ;//프로시저 호출로 커서를 센터로 보냄 call WriteString call WriteInt call Crlf ret DisplaySum ENDP GoToCenter PROC USES edx ;//커서를 화면의 중간쯤으로 보내는 프로시저 pushad mov dl,30 mov dh,rowval call GotoXY inc dh mov rowval,dh popad ret GoToCenter ENDP END main
'노트정리 > 어셈블리 책 스터디 공간' 카테고리의 다른 글
6.9.3 시험성적계산 (0) | 2010.06.30 |
---|---|
6.9.2 루프 구현 (0) | 2010.06.30 |
색상 행렬 (0) | 2010.06.14 |
무작위 화면 위치에 문자 출력 (0) | 2010.06.13 |
난수 정수 (0) | 2010.06.13 |
간단한 덧셈2 (0) | 2010.06.13 |
피보나치 수열 47항 까지 저장파일에 출력하기 (0) | 2010.06.13 |
컬러 텍스트 출력 - ch5. 텍스트 색상 그리기 (0) | 2010.06.12 |