.386 .MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dxExitCode:DWORD
INCLUDE io.h ;io.h를 include 대문자로 사용해야함.
cr EQU 0dh ;엔터, 왼쪽 아래끝으로 이동하는것. Lf EQU 0ah ;줄바꿈기능.
.STACK 4096 ;STACK영역, 4096은 4바이트.
.DATA ;;;;;;;;;;전역변수 ,데이터 영역. label1 BYTE "The value is " ;;;;;; label1은 변수이름, BYTE는 1byte, word는 4byte형. ;;;;;; " "안에 있는 수 만큼 메모리 할당.
iNumber BYTE 11 DUP (?) ;;;;;마찬가지로 1바이트형 변수 iNumber선언. 11byte를 뒤에 (?)를 아무거나 ;;;;;;iNumber에 복사한다. BYTE cr, Lf, 0 ;;;;;변수이름은 없으나, 3바이트의 메모리를 사용한다. ;;;;;0을 밑에 code영역을 보면 알겠지만, ;;;;;0을 만날때까지 실행된다. ;;;;;;;여기까지 전역변수 DATA 영역 .CODE ;;코드영역 _smart: mov eax, 100 ;;;오늘 배운것중에 핵심부분. 명령어 mov operland eax와 100 여기서는 100을 eax에 대입. dtoa iNumber, eax ;;;정수를 아스키코드로 바꾸는 명령어 eax가 가지고 있는 값100을 iNumber에 대입. output label1 ;;;laber1을 출력
INVOKE ExitProcess, 0 ;;;종료 PUBLIC _smart ;;;실행파일 이름.
|
아래는 실행결과.

빨간색 100을 제외한 네모친 부분이 전역변수 iNumnber에 공간이다.
100까지 포함하여 11개까지 차지한 것.
이 실행결과는 아래 코드를 추가하여 실행한 모습이다.
label1 BYTE "The value is "
iNumber BYTE 11 DUP (?)
BYTE "ssongsi " 이부분을 추가한 것.
BYTE cr, Lf, 0
