기말고사 대신하는 과제였다. 교수님이 한 달 정도 시간을 주셨는데 처음에 이 과제를 받았을 때는 마치 황무지에 홀로 서 있는 기분이었다. 막막했다. 그땐 구구단 짜는 것 정도 배운 상태라 이건 정말 막막했다. 뭐 아는 게 있어야지? 그런데 기말고사 대신이니 어떻게 하든 해야 했다. 내가 했던 방법은 일단 색 팔레트 하나 만들고 그 색을 이용하여 마우스로 선을 그리는 것. 이건 수학에서 자주 쓰이는 방법인데 복잡한 문제는 최대한 간략하게 하여 해결한 후에 그 원리로 풀어간다는 전략. “일단 하나만 할 수 있으면 나머지는 변형이잖아!” 마음 먹고, 몇 주 동안 책 찾아서 연구하느라 고생했다. 그런데 흑흑, 어셈은 참고 자료가 별로 없다.
일단 도스에서는 돌아가도록 만들었는데, 윈도에서는 안 돌아 간다. 어떻게 고쳐야 할까? 마감 시간이 닥쳐서 이 상태로 제출했는데 교수님 보기에 노력이 가상했는지 A+ 받았다.
※절대 아래 소스를 레포트월드, 해피캠퍼스, ... 같이 리포트 거래하는 곳에 가져다 올리지 마세요!
title paint.exe display of pixels
.model small
.stack 64
.data
x dw 0 ;x좌표
y dw 0 ;y좌표
pixel_color db 7
.186;----------------------------------------------------
.code
main proc far
mov ax,@data ;
mov ds,ax ;ds를 data에 맞춤
mov ah,0fh ;원래 비디오
int 10h ; 모드를 가져오고
push ax ; 저장하기
call mode ;그래픽 모드 설정
call display ;디스플레이
call reset_mouse ;마우스 초기화하고 설정
chk_mouse_btn:
call left_btn_down ;마우스 왼쪽 단추가 눌렸는지 확인
mov cx, x ;마우스 왼쪽 단추가 눌렸다면, x좌표값을 cx에 넣고
shl cx, 1 ;이 모드에서는 cx값이 2배로 들어오므로 여기에 대한 조정
--- 지움