어셈블리어를 이용하여 프로그램을 작성할 때에는 데이터 세그먼트와 코드 세그먼트의 크기에 따라 메모리 모델을 분류하여 사용하여야 메모리에의 빠른 접근을 할 수 있다. MASM에서는 메모리를 조금 더 효과적이고 편하게 관리하기 위해 메모리 모델이라는 개념을 정의하여 세그먼트와 메모리 설정에 대한 소스를 자동으로 생성해주는 기능을 제공한다. 메모리 모델의 종류는 다음과 같다.

모델명 설명
Tiny 코드와 데이터가 하나의 세그먼트 안에 존재한다. 스택은 세그먼트의 긑에 자동으로 정의된다. (code + data <= 64kb)
Small 코드와 데이터가 각각 하나의 세그먼트를 갖는다.(code <= 64kb, data <= 64kb)
Medium 하나의 데이터 세그먼트와 여러 개의 코드 세그먼트를 갖는다.(code > 64kb, data <= 64kb)
Compact 하나의 코드 세그먼트와 여러 개의 데이터 세그먼트를 갖는다.(code <=64kb, data > 64kb)
Large 코드 세그먼트와 데이터 세그먼트 모두 여러 개의 세그먼트를 가진다.(code > 64kb, data > 64kb)
Huge Large 세그먼트와 동일하나 배열과 같은 단일 변수들이 64kb보다 클 수 있다.
Flat 세그먼트를 사용하지 않는 경우이다. 코드와 데이터가 모두 32비트 보호 모드에서 사용된다.

메모리 모델은 다음 예제와 같이 프로그램의 가장 위에 .MODEL지시어를 이용하여 명시해준다.

.MODEL small
.stack 100h
.code

mov cx, 25
mov dl, 'A'

start:
mov ah, 2
int 21h
inc dl
loop start

int 20h

end



2008년 1월 19일 이후 작성된 모든 글에 대해서 퍼가는 것을 금지합니다.
퍼가고자 하시는 분은 링크를 달아 주시기 바랍니다.
Posted by Harry

Trackback :: http://harrys.co.kr/blog/lab/trackback/42

댓글을 달아 주세요

  1. roulette tricks 2010/08/18 16:41  댓글주소  수정/삭제  댓글쓰기

    아름다운 기사

  2. furnace 2010/10/28 01:10  댓글주소  수정/삭제  댓글쓰기

    아름다운