2014-05-17 1 views
0

나는 Kip Irvine의 include32 파일에 관해 질문이 있습니다.Kip Irvine의 readChar 및 readInt에 관해

그는이 호출을 readChar 및 readInt라고 부릅니다. 저는 여러분 중 상당수가 사용했음을 확신합니다. 그리고 그들이하는 일과 매우 유사한 설명을 가지고 있지만, 그들은 다르게 행동합니다. (오류가 있는지 난 그냥 미안 비행에 함께했다)

는 예를 들어,

내가 readInt를 사용
Title Sample  (Sample.asm) 

include Irvine32.inc 

.data 
query byte "Enter something", 0 
a  byte ? 
b  byte ? 

.code 

main proc 

mov edx, offset query 
call writeString 
call readChar 
mov a, al 

mov edx, offset query 
call writeString 
call readInt 
mov b, eax 

는 번호를 입력 int를 입력 사용자를 허용하는 부분적인 코드 다음 사항을 고려 Enter를 눌러야하고 입력 한 내용이 표시됩니다.

내가 readChar를 사용할 때 사용자가 단지 (Enter 키를 누릅니다하지 않고) 자신이 원하는 한 다음 확인없이 알에 저장됩니다 문자를 누르면 곳으로

그것을 당신이 내가 알고

입력 한 표시되지 않습니다 왜냐하면 char는 단일 well char 일 수 있기 때문에 확인이 필요하지 않습니다. 십진수는 두 자리 이상일 수 있으므로 확인이 필요합니다.

하지만 왜 readChar에 입력 한 내용이 표시되지 않습니까?

나는 irvine32.inc 파일을 읽으려고 시도했지만 매우 자세하지는 않지만 온라인으로 찾아 보았고 전체 코드를 찾을 수 없었다.). 아무도 나에게 설명 할 수 없다면 사용자가 입력 한 내용을 볼 수있는 다른 방법을 제시해 주시거나 (입력 한 내용을 다시 인쇄하지 않고도) 내게 선물 해 주시면 감사하겠습니다.

감사합니다.

답변

0

readchar의 크기가 고정되어 있고 readint (십진수)가 여러 문자로 구성 될 수 있으므로? 시스템/런타임은 "1"다음에 "1"이 나오면 "11"을 만들지 모르기 때문에 입력이 필요합니다.

이것은 지난날의 일이었습니다.

+0

예, 이해합니다.하지만 그건 내 질문이 아닙니다. 제 질문은 왜 사용자가 @marco에 들어 왔는지 보여주지 않는 것입니다. –

+0

아, 알았습니다. 왜 그것이 울리지 않는지 의미합니다. 나는 머리글을 보았고 DOS 라이브러리에 대한 일반적인 패턴을 가지고있다. readchar이 echo와 readkey를 기대하지 않을 것입니다. 여러분이 똑같이했다고 가정합니다. 따라서 버그 또는 문서화되었지만 반 직관적 인 특징을 남깁니다. –

+0

예, 죄송합니다. 적절한 용어를 모르겠습니다. Idk 그러나 그것은 정말로 나를 귀찮게한다, 메아리가 없다. 나는 그때 숯불을 읽는 것에 대한 내 자신의 proc을 만들 것이라고 생각한다. 감사. @ 마르코 –

0

작성자는 Irvine32.inc 내에서 ReadChar 절차에 따라 호출 할 수있는 WriteChar 프로 시저를 갖고 있습니다. x86 프로세서 용 어셈블리 언어 7e, pg 223의 텍스트 6.6 장을 참조하십시오. ReadChar는 키보드에서 단일 문자를 읽고 AL 레지스터에 문자를 반환합니다. WriteChar는 AL 레지스터에 char 값을 수신하여 콘솔에 기록합니다.