12.07.2013 Aufrufe

MASM 어셈블리 언어의 기초와 응용 [muckmock].pdf

MASM 어셈블리 언어의 기초와 응용 [muckmock].pdf

MASM 어셈블리 언어의 기초와 응용 [muckmock].pdf

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

1-4.<br />

심벌 상수<br />

○심벌이<br />

필요한 이유?<br />

⋅심벌을<br />

사용함으로써 프로그램을 읽고 유지하기가 쉬움<br />

COUNT = 500<br />

MOV ax, COUNT<br />

⋅프로그램<br />

수정시 용이함.<br />

COUNT가 1000번 쓰였을 경우 값 수정시 COUNT 값만 바꿔주면 된다 .<br />

○심벌을<br />

이용한 배열과 문자열의 크기 계산<br />

⋅$(<br />

현재 위치 카운터 ) 는 현재 오프셋 위치를 리턴함 . 이를 이용 .<br />

List BYTE 10, 20, 30, 40<br />

ListSize = ($ - list)<br />

○EQU<br />

디렉티브<br />

⋅심벌<br />

이름을 정수 수식이나 임의의 문자와 연결<br />

1-5.<br />

PressKey EQU <br />

.data<br />

prompt BYTE preekey<br />

실습<br />

○LengthOf<br />

를 이용하여 문장의 글자 수를 계산하고 , 레지스터의 변화되는 값을 알아본다 .<br />

⋅소스코드<br />

TITLE LengthOf (hello.asm) ;program 제목과 파일명<br />

INCLUDE \masm615\include\Irvine32.inc<br />

.data ;date 세그먼트 시작<br />

; 어셈블러 Irvine32.inc 파일을 텍스트파일에 복사한다 .<br />

strlen BYTE "hello world" ;strlen 변수를 byte형으로 선언후 hello world로<br />

초기화<br />

시켜준다.<br />

.code ;code 세그먼트 시작<br />

main PROC ;main 프로시저 시작<br />

mov eax,LENGTHOF strlen ;strlen의 문자열길이를 eax 레지스터에 저장한다 .<br />

main ENDP ;main 프로시저의 끝<br />

END main ;program<br />

종료<br />

- 6 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!