2013-05-13 109 views
0

我正在制作图形计算器并使用鼠标选择数字。我正在使用Windows XP使用所有寄存器,我该怎么办?汇编语言

我使用INT 33h,它需要AX = 3(点击)BX = 1(检查鼠标是否点击)CX =水平坐标,DX =垂直坐标。

我使用的是循环

MOUSEL: 
MOV AX,03H 
INT 33H 
CMP BX,1B 
JNE MOUSEL 

得到鼠标的位置,然后我会检查该位置

CHECK1: 
CMP CX,200 
JL MOUSEL 
CMP CX,240 
JG CHECK2 
CMP DX,160 
JL MOUSEL 
CMP DX,200 
JG CHECK4 
MOV AL,1  
MOV [SI],AL 
<<I need a counter here>> 
JE OPERATION 

我只是想获得三个数字,存储它们,然后对其执行算术运算。 我做错了什么?

+0

我的建议是,以避免汇编语言,如果你正在写的图形计算器使用一个很好的优化编译器(如GCC 4.8).... – 2013-05-13 19:30:15

+0

打算在Windows XP下运行,为什么要用16位DOS汇编语言编写它? – zwol 2013-05-13 19:30:33

+0

我很喜欢,但它是一个大学*哭泣的项目* – user2363636 2013-05-13 19:31:01

回答

1

你可以尝试使用PUSHA和波帕

MOUSELxxx: 
    pusha 
    MOUSEL: 
    MOV AX,03H 
    INT 33H 
    CMP BX,1B 
    JNE MOUSEL 
    popa 

    CHECK1: 
    CMP CX,200 
    JL MOUSELxxx 

    etc