Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/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 汇编程序(图形模式)屏幕中的游戏_Assembly_Mouse - Fatal编程技术网

Assembly 汇编程序(图形模式)屏幕中的游戏

Assembly 汇编程序(图形模式)屏幕中的游戏,assembly,mouse,Assembly,Mouse,我试着用汇编程序(在图形模式下)做一个游戏,在这个游戏中,我得到了一些在屏幕上移动的生物的程序。 问题是,我想在屏幕上添加一个鼠标和一个代码,在这个代码中,每当有人点击鼠标右键时,这个生物就会消失。我有一个清除这个生物的程序,我只需要给她打电话。有人能帮我吗 首先,请确保您消除该生物的过程以RETF指令终止 然后使用int 33h鼠标功能的设置用户定义的事件处理程序功能: mov ax, 000Ch ;Function number mov cx, 0008h

我试着用汇编程序(在图形模式下)做一个游戏,在这个游戏中,我得到了一些在屏幕上移动的生物的程序。 问题是,我想在屏幕上添加一个鼠标和一个代码,在这个代码中,每当有人点击鼠标右键时,这个生物就会消失。我有一个清除这个生物的程序,我只需要给她打电话。有人能帮我吗

  • 首先,请确保您消除该生物的过程以
    RETF
    指令终止
  • 然后使用
    int 33h
    鼠标功能的设置用户定义的事件处理程序功能:

    mov ax, 000Ch            ;Function number
    mov cx, 0008h            ;Call mask: bit 3=ON means RightButtonPressed
    mov dx, Offset of your procedure
    mov es, Segment of your procedure
    int 33h
    
  • 如果您的过程保留了它使用的标志和所有寄存器,那就最好了。

    您只能在被调用时依赖CS段寄存器。AX、BX、CX、DX、SI和DI寄存器都有与鼠标相关的值,但它们对于您当前的用途并不重要。

    您尚未指定要针对哪个操作系统。如果是DOS,您必须查找要使用的适当中断(它是33h IIRC);如果是Windows,则应使用Windows API;如果它是Linux/BSD/OSX,那么我不知道。它是DOS。我用了一些33小时的中断在屏幕上显示鼠标本身。问题是我没有发现任何中断。你能给我一些链接吗?只需谷歌“INT33H”。。。但也许你喜欢使用自己的PS2鼠标手柄。