.SMALL 모델로 프로그래밍 합니다.
" ; " 로 주석문을 사용합니다.
PAGE 60,132
TITLE A04ASM2 (EXE) MOVE AND ADD OPERATION
; -------------------------------------------------------------------------
.MODEL SMALL
.STACK 64
.DATA ;DEFINE DATA
;이곳에 변수를 선언합니다.
;ex) DIGIT DB 값
;ex) ARR DB 21 DUP(' ') ;배열 선언 등등
; -----------------------------------------------------------------------
.CODE ;코드 세그먼트의 시작입니다.
MAIN PROC FAR
MOV AX,@data ;@data는 데이타 세그먼트
MOV DS,AX ;DS 레지스터에 @data 주소 삽입
MOV ES,AX ;ES 레지스터에 @data 주소 삽입
MOV AX,4C00H ;프로그램 종료를 위한 INT 21H 인터럽트 속성 설정
INT 21H ;21H 인터럽트 발생 (프로그램 종료)
MAIN ENDP ;END OF PROCEDURE
; -----------------------------------------------------------------------
; 이곳에 원하는 새로운 프로시저(함수) 삽입 가능
; -----------------------------------------------------------------------
END MAIN ;END OF PROGRAM
변수 정의법
정의 일반적 지시어 MASM 6.0 지시어
BYTE DB BYTE
워드 DW WORD
이중워드 DD DWORD
3중워드 DF FWORD
4중워드 DQ QWORD
10바이트 DT TBYTE
변수이름 지시어 DATA
ex)
DIGIT1 DW 13 ; 10진수 숫자 13을 DIGIT1이란 변수에 WORD 크기로 삽입
DIGIT2 DB 1EH ; 16진수 숫자 1E를 DIGIT2란 변수에 BYTE 크기로 삽입
ARR DB 21 DUP(' '); 21개의 " " 문자열 ARRNAME 배열 변수 생성
NAME DB 'Hello world','$' ; Hello world라는 문자열 삽입과 , $ 추가
$의 의미 : C언어에서 NULL과 같은 의미입니다. 변수의 끝을 의미합니다.
예제)
Sosal을 출력하는 프로그램입니다.
출력 인터럽트 루틴은 다음에 자세하게 다루겠습니다.
PAGE 60,132
TITLE A04ASM2 (EXE) MOVE AND ADD OPERATION
; -------------------------------------------------------------------------
.MODEL SMALL
.STACK 64
.DATA ;DEFINE DATA
ARRAY DB 'Sosal','$'
; -----------------------------------------------------------------------
.CODE ;코드 세그먼트의 시작입니다.
MAIN PROC FAR
MOV AX,@data ;@data는 데이타 세그먼트
MOV DS,AX ;DS 레지스터에 @data 주소 삽입
MOV ES,AX ;ES 레지스터에 @data 주소 삽입
MOV AH,09H ;출력을 위한 21H 인터럽트 속성 설정
LEA DX,ARRAY ;출력을 원하는 변수의 주소값 가져오기
INT 21H ;21H 인터럽트 발생 (문자열 출력)
MOV AX,4C00H ;프로그램 종료를 위한 INT 21H 인터럽트 속성 설정
INT 21H ;21H 인터럽트 발생 (프로그램 종료)
MAIN ENDP ;END OF PROCEDURE
; -----------------------------------------------------------------------
; 이곳에 원하는 새로운 프로시저(함수) 삽입 가능
; -----------------------------------------------------------------------
END MAIN ;END OF PROGRAM
'Programing > Assembley 16bit' 카테고리의 다른 글
Assembly INT 10 속성들 정리 (0) | 2010.05.31 |
---|---|
Assembly 05. 비디오, 키보드 처리 인터럽트 (0) | 2010.05.31 |
Assembly 04. 변수 Swap 프로그램 (0) | 2010.05.10 |
Assembly 03. 조건, 제어문 (0) | 2010.05.10 |
Assembly 01. IBM assembler MASM 설치 (1) | 2010.05.10 |