Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 获取组件TASM中的鼠标位置_Assembly_Mouse_Calculator_Tasm - Fatal编程技术网

Assembly 获取组件TASM中的鼠标位置

Assembly 获取组件TASM中的鼠标位置,assembly,mouse,calculator,tasm,Assembly,Mouse,Calculator,Tasm,我正在学习汇编语言课程,我需要用(GUI?)制作一个计算器,当然还要用鼠标选择数字等等 我几乎完成了,但我被卡住了,我如何才能得到鼠标的位置?我知道我必须使用AX=3和INT33,坐标值将存储在CX&DX中。现在,数字的布局是3x3,我如何检查特定位置是否等于4?如果您使用的模拟器没有ms dos,这可能是一个非常大的问题。然而,既然你说你正在学习一门课程,模拟器可能有ms dos Int 33h是一个鼠标处理事件,以寄存器ax作为输入。输出结果可能因您所使用的图形模式(40x85、320x20

我正在学习汇编语言课程,我需要用(GUI?)制作一个计算器,当然还要用鼠标选择数字等等


我几乎完成了,但我被卡住了,我如何才能得到鼠标的位置?我知道我必须使用AX=3和INT33,坐标值将存储在CX&DX中。现在,数字的布局是3x3,我如何检查特定位置是否等于4?

如果您使用的模拟器没有ms dos,这可能是一个非常大的问题。然而,既然你说你正在学习一门课程,模拟器可能有ms dos

Int 33h是一个鼠标处理事件,以寄存器ax作为输入。输出结果可能因您所使用的图形模式(40x85、320x200、Ext)而异。以下是您需要了解的一些基本知识

  • mov ax,0000h:重置驱动程序(可能要先执行此操作)
  • mov ax,0001h:显示光标
  • mov ax,0002h:隐藏光标
  • mov ax,0003h:返回光标位置
  • mov ax,0004h:设置光标位置
  • mov ax,001Ah:设置鼠标灵敏度
  • mov ax,001Bh:获取鼠标灵敏度

  • 在这种语法中,您需要获取光标位置[No.4]。您首先需要将ax设置为0003h。返回值为CX(水平位置(x))、DX(垂直位置(y))和BX(按钮状态)。可以找到此信息

    您的操作系统是什么?是dos、windows还是其他什么?如果你使用INT 33,那么你需要使用dos引用,因为那是dos鼠标界面。对不起,我不明白?我已经启动了鼠标,我可以使用它并看到它移动。快速的答案是将返回的鼠标位置与您在屏幕上绘制数字时使用的位置进行比较,但是您是否在DOS或Windows XP中工作?是的!这正是我想做的,但我不知道如何比较行和列,因为三个数字(1,2,3)具有相同的行号。我迷路了,哈哈