🔧 실용적인 예제: 키보드 입력 처리 및 오류 관리

Assembly 예제

중급 난이도
예제 타입
10/18 등록일

실용적인 예제: 키보드 입력 처리 및 오류 관리

중급
태그
예제 실습 프로젝트 키보드 입력 처리 오류 관리 시스템 프로그래밍
## 프로젝트 개요
키보드 입력을 받고 유효성 검사를 수행하는 시스템 레벨 애플리케이션입니다. 알파벳, 숫자 입력만 허용하며 에러 상황을 처리합니다.

## 주요 기능
- 키보드 입력 수집
- 입력 값 유효성 검사 (알파벳/숫자)
- 에러 메시지 출력
- 결과값 출력

## 사용 방법
1. DOS 환경에서 실행 가능한 .COM 파일로 컴파일
2. 키보드 입력 후 Enter 키를 누르면 결과가 출력됨
3. 비정상 입력 시 오류 메시지 표시

## 확장 가능성
- 입력 길이 제한 추가
- 다른 특수 문자 허용 설정
- 입력 시간 제어 기능 연동
코드 예제
; x86 DOS 환경에서 실행 가능한 .COM 파일
org 100h

start:
    mov ax, 07C0h
    mov es, ax
    xor di, di
    cld

    ; 버퍼 초기화
    mov byte [buffer], 0
    mov dx, offset prompt
    call print_string

input_loop:
    mov ah, 0Ah
    lea dx, buffer
    int 21h
    cmp byte [buffer+1], 0
    je input_done

    ; 유효성 검사
    xor cx, cx
    mov si, offset buffer+2
    valid:
        lodsb
        cmp al, 0
        je input_done
        cmp al, 9
        jb invalid_char
        cmp al, 'A'
        jb invalid_char
        cmp al, 'Z'
        ja invalid_char
        cmp al, 'a'
        jb invalid_char
        cmp al, 'z'
        ja invalid_char
        inc cx
        jmp valid
    invalid_char:
        mov ah, 09h
        lea dx, error_msg
        int 23h
        jmp input_loop

input_done:
    mov ah, 09h
    lea dx, result_msg
    int 21h
    ret

print_string:
    push ax bx cx dx si di bp
    mov ah, 09h
    int 21h
    pop bp
    ret

buffer db 80 dup(0)
error_msg db '잘못된 입력입니다. 다시 입력해 주세요.', 0Dh, 0Ah, '$'
result_msg db '입력한 값: ', 0Dh, 0Ah, '$'
prompt db '문자열을 입력하세요 (Enter로 종료): ', 0Dh, 0Ah, '$'
등록일: 2025년 10월 18일 02:35
언어 정보
언어
Assembly
카테고리
System
인기도
#25
학습 팁
코드를 직접 실행해보세요
변수를 바꿔가며 실험해보세요
오류가 나도 포기하지 마세요
다른 예제도 찾아보세요