[어셈블리언어] E04. 임베디드 : 아이디 유효성 검사
- 최초 등록일
- 2010.07.11
- 최종 저작일
- 2010.05
- 8페이지/ 압축파일
- 가격 2,000원
소개글
과제목적 : 사용자ID의 유효성 검사, 스택 사용, 비밀번호는 *로 표시
비밀번호는 두번 받아 같아야 통과, ID길이는 6~10자리
alphanumeric이 아닐경우 x
E03에 이어서 VS2008에서 작업하며, 스택사용과 je, alphanumeric이 아닐 경우의 검사 등 여러 조건들을 걸어놓고 코딩하였습니다.
어셈블리 언어의 특성상 코드의 구성이 길며 복잡합니다. 주석들이 달려있으니 참고.
목차
1. 실습환경(OS, 장소)
2. 구현의 접근방법
3. 프로그램 종료 코드
4. 코드 & 설명(주석)
5. 결과
6. 후기
본문내용
2. 구현의 접근방법
이번 Practice04의 문제 기본 요구사항에는 네 가지가 있다.
첫 번째는 문자열을 입력 받고 그 문자열을 스택에 저장하는 것이고, 두 번째는 아이디 체크는 스택에 있는 정보를 사용하여야 한다는 것이다. 첫 번째와 두 번째 조건은 P03에서 이미 사용해 보았던 스택을 이용하여 해결하면 된다.
세 번째 조건은 가능한 로그인 ID의 길이가 6~10자리여야 한다는 것이다. 이것은 cmp와 jb, ja를 이용하여 문자열의 길이가 요구조건에 맞는지 확인하면 해결된다.
마지막으로 네 번째는 가능한 ID는 알파벳, 숫자, ‘_’가 반드시 포함되어야 한다는 조건을 가지고 있다. 이 조건은 많은 레이블들의 조합을 사용하여 해결하였다.
세 번째 조건과 네 번째 조건을 합쳐 생각하면, 6~10자리 이면서 알파벳, 숫자, ‘_’ 외의 문자열이 입력된다면 inValid 처리 해주면 된다.
+ID의 첫 문자는 영문자 이어야 한다.
추가요구사항의 요구사항 중 체크는 ID의 경우와 같고, 비밀번호는 두 배열의 단순비교이다. 아스테리크는 그저 입력이 들어오면 ‘*’ 를 출력해 주면 되는 방식이다.
3. 프로그램 종료 코드
에러 발생 시 비밀번호 입력이 필요 없으므로 종료시킨다.
mov ah, 4Ch ;프로그램 종료를 위한 INT 21H 인터럽트 속성 설정
int 21h ;21H 인터럽트 발생 (프로그램 종료)
4. 코드 & 설명(주석)
TITLE MASM Template (main.asm)
; Description: Practice 04
;
; Revision date: 2010. 05. 11
;C:\Irvine\examples\Lib32\Irvine32_Library
참고 자료
어셈블리 언어 : 인텔 기반 컴퓨터를 위한 (제5판) KIP R.IRVINE 저
압축파일 내 파일목록
P04.doc
Practice 04/Debug/BuildLog.htm
Practice 04/Debug/main.obj
Practice 04/Debug/mt.dep
Practice 04/Debug/Project.exe
Practice 04/Debug/Project.exe.intermediate.manifest
Practice 04/Debug/Project.ilk
Practice 04/Debug/Project.pdb
Practice 04/main.asm
Practice 04/Project.ncb
Practice 04/Project.sln
Practice 04/Project.suo
Practice 04/Project.vcproj
Practice 04/Project.vcproj.ASM.Kip.user
Practice 04/Project.vcproj.user