MASM 명령어와 간단한 프로그램 분석
- 최초 등록일
- 2014.10.19
- 최종 저작일
- 2014.09
- 14페이지/ 한컴오피스
- 가격 1,000원
목차
1. 서론
1) 개발 환경
2) 과제물
2. 본문
1) MASM 설치와 Visual Studio 2013 환경 설정
2) MASM 명령어 set
3) MASM 예제 기능 설명
4) MASM 예제(임의 선정)
3. 결론
1) 어셈블리어
본문내용
서론
개발 환경
Operating System
OS는 Microsoft의 Windows Embeded 8.1 Industry Pro 64bit
IDE
프로그래밍 과제는 Microsoft의 Visual Studio 2013 Professional에서 작성되었습니다.
문서 편집기
문서 편집기는 한글과 컴퓨터의 한글 2010버전에서 작성되었습니다.
<중 략>
.data
myMessage BYTE "Hell!! Assembly Languare", 0dh, 0ah, 0
.code
main PROC
Call Clrscr
mov edx, OFFSET myMessage
call WriteString
Exit
main ENDP
END main
1번 TITLE은 MASM의 directive중 하나이고, 리스트 파일을 출력 시 상단에 표기되도록 한다.
3번 Irvine32의 인클루드 파일(.inc)를 전처리 한다.
5번 아래의 코드에서 데이터 영역이 선언됨을 알린다.
6번 myMessage라는 변수는 BYTE타입이며 문자열의 포인터값을 저장 한다.
0dh는 16진수 데이터로서 개행, 0ah는 append 역할을 하여 함께 ‘\n’와 같은 역할을 한다. 이후 숫자 0은 종료를 의미한다.
8번,9번,16번,17번은 모두 코드와 관련된 명령어로서 .code는 이후 코드영역을 의미한다.
9번의 main PROC과 16번의 main ENDP는 쌍을 이루어 main이라는 프로시저의 시작과 끝을 알린다.
17번은 main이 종료함을 의미한다.
11번 call 명령어는 다음의 함수를 실행하는 명령어인데, Clrscr은 console 도스 창을 모두 지우는 명령이다.
13번 mov는 뒤에 오는 레지스터에 데이터를 옮기는 역할을 하고, OFFSET은 뒤에 오는 변수의 주소 값을 반환하는 명령어이다.
14번 WriteString을 호출하여 edx 레지스터의 주소 값을 따라 문자열을 출력한다.
15번 exit는 출력이 끝남을 의미하며, 생략의 경우 무한 루프 상태가 되었다.
그림 5. 실행 결과
이 프로그램은 한 문장과 개행 문자를 합쳐 콘솔에 출력하는 프로그램이다.
참고 자료
없음