간단한 어셈블리코드 질문입니다 ㅠㅠ
조회수 787회
숫자 2개를 입력받아서
기존의 상수 젤 끝자리 2개와 비교해 일치하면 상수를 출력하는 프로그램을 만들고 있어요ㅜㅜ
WHILE문으로 일치할때까지 계속 비교하는 프로그램이에요! (문자열 입력받는 함수와 출력하는 함수 사용)
완전 초보라서 어떻게 해야할지 잘 모르겠어요 ㅠㅠ
MAIN SEGMENT
ASSUME CS:MAIN, DS:MAIN
MOV AX, MAIN ; Set up the Data Segment address
MOV DS, AX
MOV DS, AX ; STUN문자열의 끝 2자리를 STUN2로 복사
MOV ES, AX
LEA SI, STUN+6
LEA DI, STUN2
CLD
MOVSB
MOVSB
MOV BL, STUN2 ; STUN2 문자열을 BL에 저장
MOV DL, '입력하세요'
CALL DISPALYC ; 문자열 출력
WHILE_: ; GUESS와 STUN뒷 2자리가 같으면 DO
CALL GETC ; 문자열 받기
MOV GUESS, AL ; AL을 GUESS로 이동
MOV AH, 2H
INT 21H
CMP BL, AL ; GUESS 와 BL을 비교
JE END_WHILE ; 같으면 종료
INT 21H ; 문자읽기
JMP WHILE_ ; 루프
END_WHILE
MOV DL, STUN ; 학번 출력
CALL DISPLAYC ; 문자열 출력
MOV AH, 4CH ; Terminate the sample program
INT 21H
GETC PROC
MOV AH, 0H ;
INT 16
RET
GETC ENDP
DISPLAYC PROC
MOV AH, 2H
INT 21H
RET
DISPLAYC ENDP
MAIN ENDS
DATA SEGMENT
STUN DW '21411861'
STUN2 DW 2 DUP
GUESS DW ?
DATA ENDS
END
댓글 입력