어셈블리에서 웃는 얼굴을 어떻게 인쇄합니까?
문제
나는 어셈블러로 프로그램을 작성하고 그것을 편집했다. 푸른 웃는 얼굴을 인쇄 한 다음 사용자가 종료되기 전에 키를 누를 때까지 기다리는 것입니다. 그것은 마지막 비트를 수행하지만 웃는 얼굴을 인쇄하지 않습니다. 누군가 내가 무엇을 잘못했는지 설명 할 수 있습니까?
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이 제안한대로 전체 화면을 실행하거나 기존 래스터 글꼴 (예 : 시스템)을 사용하기 위해 명령 창을 설정하면됩니다. 창의 제목 표시 줄을 마우스 오른쪽 버튼으로 클릭하고 글꼴 탭을보십시오.
제휴하지 않습니다 StackOverflow