2015-01-26 5 views
-1

다음은 8086 마이크로 프로세서의 어셈블리 언어로 작성된 코드입니다.이 코드는 숫자가 양수인지 음수인지를 찾습니다. 코드를 이해하지만 해당 코드의 4 번째 줄과 5 번째 줄을 이해할 수 없습니다.

 ;FIND A NUMBER THAT WAS POSITIVE OR NEGETIVE 
     DATA SEGMENT 
     X DW 28H 
     MSG1 DB 10,13, 'NUMBER IS POSITIVE $' 
     MSG2 DB 10,13, 'NUMBER IS NEGETIVE $' 
     DATA ENDS 

     CODE SEGMENT 
     ASSUME CS:CODE, DS:DATA 
     START: 
     MOV AX, DATA 
     MOV DS, AX 
     MOV AX, X 
     ROL AL, 01H 
     JC NEGA 
     LEA DX, MSG1 
     JMP LAST 

     NEGA: 
     LEA DX, MSG2 

     LAST: 
      MOV AH, 09H 
      INT 21H 
      MOV AH,4CH 
      INT 21H 


     CODE ENDS 
    END START 

왜 4th 및 5th 라인에서 MSG1 DB 이후에 10,13을 사용합니까?

+3

[ASCII] (http://asciitable.com)에서 '10'은 줄 바꿈이고 '13'은 캐리지 리턴입니다. –

+1

@ 500-InternalServerError 주석에 대해 자세히 설명하면이 두 바이트는'\ n' (Windows의 경우)에 해당합니다. – m0skit0

+0

감사합니다. @ 500-InternalServerError – InsomniacSabbir

답변

0

내부 서버 오류의 설명에 따르면 은 줄 바꿈을위한 ASCII 제어 코드이며 13은 캐리지 리턴 코드입니다. 줄 바꿈 제어 코드는 커서를 다음 줄로 이동하고 캐리지 리턴 코드는 줄의 시작 부분으로 커서를 이동합니다. 함께 두 제어 코드는 커서를 다음 줄의 시작 부분으로 이동시킵니다.

이 두 컨트롤 코드는 함께 다른 순서를 제외하고 표준 MS-DOS 줄 끝 시퀀스를 형성합니다. 즉, 시퀀스 13, 10은 표준 MS-DOS 줄 끝입니다. 샘플 프로그램에서 잘못된 순서로 처리하는 것이 실제적인 차이를 만들지는 않을 것이지만 자신의 프로그램에서 올바른 순서를 사용해야합니다. 이렇게하면 프로그램 출력을 읽을 수있는 다른 프로그램이 혼동되지 않도록 할 수 있습니다.

+0

고마워요. @ 로스 리지 :) – InsomniacSabbir