【问题标题】:Getting mouse position in assembly TASM在装配 TASM 中获取鼠标位置
【发布时间】:2023-04-04 18:37:01
【问题描述】:

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

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

【问题讨论】:

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

标签: assembly mouse calculator tasm


【解决方案1】:

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

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

  1. mov ax, 0000h: 重置驱动程序(可能想先这样做)
  2. mov ax, 0001h: 显示光标
  3. mov ax, 0002h: 隐藏光标
  4. mov ax,0003h:返回光标位置
  5. mov ax, 0004h:设置光标位置
  6. mov ax,001Ah:设置鼠标灵敏度
  7. mov ax, 001Bh: 获取鼠标灵敏度

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 2018-10-26
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多