본문 바로가기

Programming Language/Assembly

두 번째 예제: Hello, World!

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
.386 ; 386 CPU용 명령어들을 사용합니다.
.model flat, stdcall ; 메모리 모델은 stdcall을 사용합니다.
.stack 1024
.data ; 데이터 영역은 아직 없으므로 비워둡니다.
.code ; 코드 영역 시작
main PROC ; main 프로시저 선언합니다.
    MOV AH, 02h ; AH 레지스터에 문자 1개를 출력하는 명령인 02h를 넣습니다. 반복적으로 사용될 값이므로 첫 번째 예제와는 순서를 바꿔서 가장 처음에 배치해 봤습니다.

    MOV DL, 48h ; DL 레지스터에 아스키문자 'H' (0x48)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 65h ; DL 레지스터에 아스키문자 'e' (0x65)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 6Ch ; DL 레지스터에 아스키문자 'l' (0x6C)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 6Ch ; DL 레지스터에 아스키문자 'l' (0x6C)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 6Fh ; DL 레지스터에 아스키문자 'o' (0x6F)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 2Ch ; DL 레지스터에 아스키문자 ',' (0x2C)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 20h ; DL 레지스터에 아스키문자 ' ' (0x20)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 57h ; DL 레지스터에 아스키문자 'W' (0x57)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 6Fh ; DL 레지스터에 아스키문자 'o' (0x6F)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 72h ; DL 레지스터에 아스키문자 'r' (0x72)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 6Ch ; DL 레지스터에 아스키문자 'l' (0x6C)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 64h ; DL 레지스터에 아스키문자 'd' (0x64)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.

    MOV DL, 21h ; DL 레지스터에 아스키문자 '!' (0x21)를 넣습니다.
    INT 21h ; 만능 인터럽트 21h를 발생시켜 AH, DL에 담긴 내용대로 처리합니다.
 
    MOV AH, 4Ch ; AH 레지스터에 프로그램을 종료하고 도스로 돌아가는 명령인 4Ch를 넣습니다.
    INT 21h ; 다시 만능 인터럽트 21h를 발생시켜 프로그램을 끝내고 도스로 돌아갑니다.
main ENDP ; main 프로시저의 끝입니다.
END main ; 프로그램 선언은 여기서 끝내고 main 프로시저로 진입합니다.


실행 결과

'Programming Language > Assembly' 카테고리의 다른 글

산술비교 명령어 모음  (0) 2013.04.06
점프 명령어 JMP  (0) 2013.04.06
첫 예제: 1개의 문자 출력  (0) 2013.03.31
MASM PWB 사용하기  (0) 2013.03.31
MASM 설치하기 (MS-DOS 버전)  (0) 2013.03.31