문제

나는 어셈블러로 프로그램을 작성하고 그것을 편집했다. 푸른 웃는 얼굴을 인쇄 한 다음 사용자가 종료되기 전에 키를 누를 때까지 기다리는 것입니다. 그것은 마지막 비트를 수행하지만 웃는 얼굴을 인쇄하지 않습니다. 누군가 내가 무엇을 잘못했는지 설명 할 수 있습니까?

CSEG segment
org 100h
Begin:

mov ax,0B800h
mov es,ax
mov di,0

mov ah,31
mov al,1
mov es:[di],ax

mov ah,10h
int 16h

int 20h

CSEG ends
end Begin

나는 그것을 컴파일했다 masm a 16 비트 링커

도움이 되었습니까?

해결책

텍스트 전용 비디오 모드에있는 경우 비디오 버퍼를 직접 포장 할 수 있습니다. 나는 당신이 어떤 종류의 Windows를 사용하고 실제로 DOS를 부팅하지 않는다고 생각합니다. 그래서 당신은 아마도 그래픽 모드에있을 것입니다.

당신이 5월 할 수있어서 콘솔 창을 열고 대체입력하다 전체 화면 텍스트 모드로 이동합니다. 거기에서 프로그램을 실행 해보세요.

다른 팁

내가 MASM과 함께 일한 지 약 1 년이 지났고 집에서 가지고있는 유일한 참조 책은 MIP이므로 약간 녹슬었지만 화면에 인쇄 된 인쇄는 시스템 인터럽트 (int 21h)가 필요하지만 유일한 시스템은 유일한 시스템입니다. 내가보고있는 인터럽트는 키보드 인터럽트 후 프로그램 종료 호출입니다.

코드는 괜찮습니다. Greg Hewgill이 제안한대로 전체 화면을 실행하거나 기존 래스터 글꼴 (예 : 시스템)을 사용하기 위해 명령 창을 설정하면됩니다. 창의 제목 표시 줄을 마우스 오른쪽 버튼으로 클릭하고 글꼴 탭을보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top