편집 기록

편집 기록
  • 프로필 정영훈님의 편집
    날짜2019.09.29

    간단한 어셈블리코드 질문입니다 ㅠㅠ


    숫자 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
    
  • 프로필 신수형님의 편집
    날짜2019.09.29

    간단한 어셈블리코드 질문입니다 ㅠㅠ


    숫자 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