336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
option casemap: none ; 대/소문자를 구분하지 않습니다. .386 ; 386 CPU용 명령어들을 사용합니다. .model flat, stdcall ; 메모리 모델은 stdcall을 사용합니다. .stack 1024 ; 스택의 크기는 1024 워드로 합니다. .data ; 데이터 영역은 아직 없으므로 비워둡니다. .code ; 코드 영역 시작 main PROC ; main 프로시저 선언합니다. MOV AH, 99 ; AH 레지스터에 99를 넣습니다. MOV AL, 1 ; AL 레지스터에 1을 넣습니다. CMP AH, AL ; AH - AL 연산을 하여 대소비교를 합니다. JZ JMP_EQUALS ; AH - AL == 0이어서 ZF Flag가 1이 되면 JMP_EQUALS 위치로 점프합니다. JNZ JMP_NEQUALS ; AH - AL != 0이어서 ZF Flag가 0이 되면 JMP_NEQUALS 위치로 점프합니다. JMP_EQUALS: ; JMP_EQUALS 위치는 여기부터 시작합니다. MOV AH, 02h ; AH 레지스터에 문자 출력을 의미하는 02h를 넣습니다. MOV DL, 3Dh ; DL 레지스터에 ASCII 문자 '='를 넣습니다. INT 21h ; AH와 DL의 값으로 인터럽트 호출합니다. INT 21h ; AH와 DL의 값으로 인터럽트 호출합니다. (한번 더 실행) JMP JMP_EXIT ; 종료 위치로 점프합니다. JMP_NEQUALS: ; JMP_NEQUALS 위치는 여기부터 시작합니다. MOV AH, 02h ; AH 레지스터에 문자 출력을 의미하는 02h를 넣습니다. MOV DL, 21h ; DL 레지스터에 ASCII 문자 '!'를 넣습니다. INT 21h ; AH와 DL의 값으로 인터럽트 호출합니다. MOV DL, 3Dh ; DL 레지스터에 ASCII 문자 '='를 넣습니다. INT 21h ; AH와 DL의 값으로 인터럽트 호출합니다. JMP JMP_EXIT ; 종료 위치로 점프합니다. JMP_EXIT: ; 종료 구문의 시작 MOV AH, 4Ch ; AH 레지스터에 프로그램 종료 및 도스로 돌아감을 의미하는 4Ch를 넣습니다. INT 21h ; 인터럽트 호출에 프로그램 종료합니다. main ENDP ; main 프로시저의 끝입니다. end main ; main 프로시저를 시작합니다.
실행 결과: AH와 AL이 다르므로 "!="이 출력
'Programming Language > Assembly' 카테고리의 다른 글
산술 비교 알고리즘 - 3편. "<"와 ">=" (0) | 2013.04.12 |
---|---|
산술 비교 알고리즘 - 2편. ">"와 "<=" (0) | 2013.04.12 |
산술비교 명령어 모음 (0) | 2013.04.06 |
점프 명령어 JMP (0) | 2013.04.06 |
두 번째 예제: Hello, World! (0) | 2013.03.31 |