MASM 어셈블리 언어의 기초와 응용 [muckmock].pdf
MASM 어셈블리 언어의 기초와 응용 [muckmock].pdf
MASM 어셈블리 언어의 기초와 응용 [muckmock].pdf
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 -