도스 모드의 그래픽 모드에서 화면을 지울 필요가 있습니다 (단색으로 모두 채색해야합니다), 그 사람이 무엇을 알아야하며, 레지스터에 무엇을 넣어야합니까? 어떤 레지스터에 화면을 넣을 색을 넣을까요? 도우미에게 정말 고마워! DOS 운영 체제에서 그래픽 모드로 화면을 색칠하는 방법은 무엇입니까?
이
이 (어셈블리) 내 코드입니다 : 누군가가 도움을 줄 수있는 경우 나 arrowes 상하 & 내 출구 내가 사랑하는 것이 나에게 deternmind 코드 0을 쓰고 바로 & 왼쪽으로 이동하고 왜 이유를 이해! : 그> IDEAL MODEL small STACK 100h DATASEG x dw 0 xa dw 0 y dw 5 ya dw 5 z dw 1 za dw 1 color db 4 Pixels Color bgcolor db 0 ;BackGround Color > CODESEG start: mov ax, @data mov ds, ax ; Graphic mode mov ax, 13h int 10h ; Print red dot mov bh,0h mov cx,[x] mov dx,[y] > mov al,[color] mov ah,0ch int 10h amit: > ;Wait for + > mov ah,00h > int 16h > cmp ax, 0d3dh > je plus > ;Wait for - > cmp ax, 0c2dh > je minus > ; Wait for exit > cmp ax, 1071h > je exit > cmp ax, 4d00h > je right > cmp ax, 4b00h > je left1 > cmp ax, 4800h > je up1 > cmp ax, 5000h > je down1 > > exit: > mov ah, 0 > mov al, 2 > int 10h > mov ax, 4c00h > int 21h > plus: > add [x], 1 > mov cx, [x] > add [y], 1 > mov dx, [y] > mov bh, 0h > mov al,[color] > mov ah, 0ch > int 10h > add [z], 1h > add [za], 1h > jmp amit > left1: > jmp left > up1: > jmp up > down1: > jmp down > minus: > mov bh, 00h > mov al,[bgcolor] > mov ah,0ch > int 10h > sub [x], 1 > mov cx, [x] > sub [y], 1 > mov dx, [y] > sub [z], 1h > sub [za], 1h > jmp amit > right: > clsright: > mov bh, 00h > mov al,[bgcolor] > mov ah,0ch > int 10h > sub [x], 1 > mov cx, [x] > sub [y], 1 > mov dx, [y] > sub [z], 1h > cmp [z], 0h > jne clsright > add [x],1h > jmp arrowplus > left: > clsleft: > mov bh, 00h > mov al,[bgcolor] > mov ah,0ch > int 10h > sub [x], 1 > mov cx, [x] > sub [y], 1 > mov dx, [y] > sub [z], 1h > cmp [z], 0h > jne clsleft > sub [x], 1h > jmp arrowplus > up: > clsup: > mov bh, 00h > mov al,[bgcolor] > mov ah,0ch > int 10h > sub [x], 1 > mov cx, [x] > sub [y], 1 > mov dx, [y] > sub [z], 1h > cmp [z], 0h > jne clsup > sub [y], 1h > jmp arrowplus > down: > clsdown: > mov bh, 00h > mov al,[bgcolor] > mov ah,0ch > int 10h > sub [x], 1 > mov cx, [x] > sub [y], 1 > mov dx, [y] > sub [z], 1h > cmp [z], 0h > jne clsdown > add [y], 1h > jmp arrowplus > arrowplus: > add [x], 1 > mov cx, [x] > add [y], 1 > mov dx, [y] > mov bh, 0h > mov al,[color] > mov ah, 0ch > int 10h > add [z], 1h > mov [z], dx > cmp [za], dx > jne arrowplus > jmp amit END start
비디오 메모리에 직접 비트를 조작 할 수 화면,하지만 BIOS를 사용하는 매우 느린 방법을 사용할 수 있습니다 [Int 10h/AH = 0Ch] (http://www.ctyme.com/intr/rb-0104.htm) –
나중에 더 많은 것들이 필요할 경우 프로젝트에 추가하려면 [화면에서 객체를 이동시키는 가장 좋은 방법은 무엇입니까?] (http://stackoverflow.com/)를 참조하십시오. a/29579522/2521214) 메뉴 (텍스트 모드), 스프라이트, 동시 제어 (3 플레이어), 파일 액세스를 포함하여 MS-DOS 320x200x8bit 모드 (내게 사용하는 것과 동일한)에서 내 오래된 게임 중 하나에 대한 소스를 넣었습니다. 작은 모델의 모든 것 (* .com 실행 파일의 최대 64KB) – Spektre