當前位置:編程學習大全網 - 編程語言 - 匯編語言中如何用鍵盤控制形狀的移動?

匯編語言中如何用鍵盤控制形狀的移動?

描述:

1,這個程序只識別三個鍵:光標左鍵、光標右鍵、Esc鍵;

2.按光標左鍵或光標右鍵執行相應的功能;按Esc鍵結束程序。

;這個程序通過編譯正確運行。

代碼段

假設CS:Code,DS:Code

;-

;函數:顯示指定地址的字符串(Str_Addr)

;入口:

;Str_Addr= =字符串地址(數據段中需要)

;用法:輸出字符串地址

;用法示例:Output PromptStr

輸出宏字符串地址

lea dx,Str _地址

mov ah,9

int 21h

EndM

;-

;功能:設置光標位置

;Entry: Cursor_Row=行坐標;遊標_列:列坐標)

SetCursor前進到附近

推CX

推BX

推斧

MOV DH,Cursor_Row

MOV DL,光標_列

BX XOR BX

MOV啊,2

INT 10H

爆破筒

波普·BX

波普·CX

浸水使柔軟

Cursor_Row DB 21

遊標_列數據庫36

SetCursor結束

;-

KBEsc equ 11BH

KBLeft equ 4BH

KBRight equ 4DH

字符串db ' & lt-& gt;$'

開始:推送cs

流行數碼相機

推送cs

pop es使數據段、附加段和代碼段成為同壹個段。

xor有限公司

mov啊,8;讀取光標位置的字符和屬性。

int 10h

mov bh,啊;保存字符屬性值

Disp_Str:調用SetCursor設置光標位置

輸出字符串;顯示字符串

Read_Key: xor啊,啊

int 16h;接收鍵

cmp ax,KBEscEsc?

jz出口_過程;結束程序並返回操作系統。

cmp ah,KBLeft向左箭頭?

jnz $+10;不,轉過去看看妳是否按了右鍵。

mov word ptr Inc_or_Dec,0efeh是的,當前列號是負1。

jmp光標_移動

cmp啊,KBRight右箭頭?

jnz Read _ Key否,接收下壹個按鈕。

mov word ptr Inc_or_Dec,06feh是,將1加到當前列號上。

Cursor_move:mov bl,ah;保存關鍵點方向

推動bx

xor有限公司

mov啊,3;取當前光標位置和窗口右下角的坐標。

int 10h

pop bx

inc dl列號加1

mov ch,Cursor _ Row窗口左上角的行號

mov cl,Cursor _ Col窗口左上角的列號

。如果bl = = KBLeft & amp& ampcl = = 0;按左按鈕,但是已經到了最左邊,不動了。

jmp讀取密鑰

。ENDIF

。IF bl = = KBRight & amp& ampdl = = 79右鍵,但是已經到了最右邊,不動了。

jmp讀取密鑰

。ENDIF

mov啊,7;窗口顯示內容向下滾動。

mov al,1;向下滾動壹行。

int 10h

Inc_or_Dec: inc遊標_ Col當前列號是負1或正1。

jmp顯示_字符串

Exit_Proc: mov ah,4ch結束程序

int 21h

代碼結束

結束開始;這是編譯的結尾

  • 上一篇:最火的理科專業有哪些
  • 下一篇:WEB JavaScript 編程 盡快幫我 回答 謝謝了明天要考試
  • copyright 2024編程學習大全網