下面的代码可以让你用鼠标在屏幕上画画,效果很好。我的问题是为什么CX需要除以2?为什么一开始就翻了一倍?
code segment
main proc far
mov al, 12h
mov ah, 0 ; set graphics video mode.
int 10h
mov ax, 1 ;shows mouse cursor
int 33h
Next:
mov ax, 3 ;get cursor positon in cx,dx
int 33h
call putpix ;call procedure
jmp Next
mov ah,4ch
int 21h
main endp
;procedure to print
putpix proc
mov al, 7 ;color of pixel
mov ah, 0ch
shr cx,1 ; cx will get double so we divide it by two
int 10h ; set pixel.
ret
putpix endp
code ends 发布于 2015-06-11 16:31:20
EMU8086和您的代码的下一个屏幕截图将帮助我们理解正在发生的事情:
shr cx,1)。

发布于 2015-06-11 19:34:25
看起来您在模拟器(或它的鼠标驱动程序)中遇到了一个bug。当我在DOSBox和MS 6.22上运行你的程序时,你的程序只会在显示器的左边绘制像素。


您可能需要向编写模拟器的人员提交错误报告。
https://stackoverflow.com/questions/30784552
复制相似问题