2
낮은 수준의 어셈블리 (16 비트)로 코딩 중이며 사용자가 프로그램과 같은 "페인트"에서 배경색을 변경할 수있게하려고합니다. 이미 모든 WASD 및 색상, 같은 작업이 공간 코드 (당신이 커서 위치 녹색 확인) :어셈블리에서 현재 커서 위치의 배경색을 변경하는 방법
mov ah, 09h
mov bl, 00100101b
mov cx, 1d
int 10h
을하지만 다시 'X'또는 'Q'코드를 변경하고자 할 때 :
mov ah, 09h
mov bh, 0
mov bl, 00010000b
mov cx, 1d
int 10h
배경색이 파란색으로 바뀝니다. 그러나 그것은 또한 블록에 'x'또는 'q'를 넣습니다!
배경색을 파란색으로 (그리고 커서는 검은 색으로 만) 만들 수 있고 'x'또는 'q'(x 또는 q 문자 사용)를 배치하지 않을 수 있습니까?
아 = 9 (BL)에 의해 지정된 속성을 사용하여 현재 위치 아에서 문자를 작성하는 것입니다, INT의 10H를 사용. 'x'또는 'q'를 쓰지 않으려면 아에 다른 값을 입력하십시오. 예를 들어 공백을 사용할 수 있습니다 (mov ah, ''). 또는 기존 문자를 읽고 새 색상을 사용하여 다시 쓰고 싶을 수도 있습니다. int 10, ah = 8은 기존 값을 읽는 데 사용할 수 있습니다. int 10을 사용하는 것은 성능에 대해 알려지지 않습니다. 더 나은 성능을 위해 많은 DOS 프로그램이 비디오 메모리에 직접 읽거나 씁니다. –
고마워요 ....하지만 비디오 메모리에 직접 쓰거나 읽는 방법 (미안, 멍청한 소리가 들린다면 :) :) –
누구나 어떤 시점에서 멍청한 사람입니다. 사용할 수있는 라이브러리가 있지만 일부 문서를 읽으려면 http://webpages.charter.net/danrollins/techhelp/0089.HTM –