2013-05-08 24 views
1

我正在學習彙編語言課程,我需要用(GUI?)製作計算器,當然還需要使用鼠標來選擇數字等......在程序集中獲取鼠標位置TASM

我差不多完成了,但我被卡住了,我怎麼能得到鼠標的位置?我知道我必須使用AX = 3和INT33,並且座標值將存儲在DX & DX中。現在,數字的佈局是3x3,如何檢查特定位置是否等於4?

+0

什麼是您的操作系統?它是DOS,窗戶還是更多? – osgx 2013-05-08 19:20:10

+0

我正在使用windows xp – user2363636 2013-05-08 19:27:16

+0

如果您使用的是INT 33,那麼您需要使用DOS引用,因爲這是DOS鼠標接口。 – 2013-05-08 19:30:45

回答

0

如果您使用的是沒有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:獲取鼠標靈敏度

在此語法您的要求得到光標位置[編號4]。你首先需要,但斧頭0003h。返回值爲CX(水平位置(x)),DX(垂直位置(y))和BX(按鈕狀態)。此信息可以發現here.