【任務】
在螢幕的左上角動態顯示時間,期間,按下home鍵後,能顯示」home」,按下end鍵後,退出程式。
【參考解答】
【說明】assume cs:code
stack segment
db 128 dup (0)
stack ends
data segment
dw 0,0
home db 'home',0dh,0ah,'$'
data ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,128
mov ax,data
mov ds,ax
; 改中斷例程入口位址
mov ax,0
mov es,ax
push es:[9*4]
pop ds:[0]
push es:[9*4+2]
pop ds:[2]
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs
; 顯示時間
show: mov al,2 ;分
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov bx,0b800h
mov es,bx
mov byte ptr es:[0],ah
mov byte ptr es:[1],01001111b
mov byte ptr es:[2],al
mov byte ptr es:[3],01001111b
mov byte ptr es:[4],':'
mov byte ptr es:[5],01001111b
mov al,0 ;秒
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr ah,cl
and al,00001111b
add ah,30h
add al,30h
mov bx,0b800h
mov es,bx
mov byte ptr es:[6],ah
mov byte ptr es:[7],01001111b
mov byte ptr es:[8],al
mov byte ptr es:[9],01001111b
jmp show
; 定義中斷例程
int9:
push ax
push bx
push dx
push es
in al,60h
pushf
pushf
pop bx
and bh,11111100b
push bx
popf
call dword ptr ds:[0]
mov bl, al ;儲存al
cmp al,47h ; 47h是home鍵的掃瞄碼
jne ifend
;處理home
lea dx, home
mov ah,9
int 21h
jmp int9ret
ifend: cmp bl, 4fh ;4fh是end鍵的掃瞄碼
jne int9ret
;處理end,使程式結束,注意在此要恢復中斷向量
mov ax,0
mov es,ax
push ds:[0]
pop es:[9*4]
push ds:[2]
pop es:[9*4+2]
mov ax,4c00h
int 21h
int9ret:pop es
pop dx
pop bx
pop ax
iret
code ends
endstart
本程式是匯程式設計序:顯示時間(分秒)的擴充,實現了顯示時間過程中,鍵盤中斷做一些處理,這已經有了一點實用的模型,可以再自行擴充,例如用於戰鬥類遊戲設計中,按下方向鍵,實現**、加速等,這些都好控制了。
還可以在主程式中完成一定的功能,將顯示時間也由定時器控制,用中斷機制完成,這個可以作為時一步學習的方向。
字串的輸入與顯示(匯程式設計序)
彙編臨近考試,雖然只是考察科目,但學了的東西不能白學,就把自己複習的東西拿出來,以後要回顧也方便 方法一 通過02號單個字元的輸出功能,迴圈輸出得到字串 data segment strs db please input a string buf db 20 db db 20 dup crlf db...
匯程式設計序 用中斷輸入並顯示操作方法
任務 用中斷輸入並顯示 利用dos系統功能呼叫,將鍵盤輸入的小寫字母轉換成大寫字母後輸出顯示,輸入非小寫字母時,什麼也不顯示,等待其他輸入 輸入 字元時結束。注意要在程式中加入必要的注釋。assume cs code code segment begin stop mov ax,4c00h int ...
TC2 0中怎樣呼叫匯程式設計序
tc是美國borland 公司在ibm pc機上開發的乙個高效 優化的c編譯程式,它自帶高效的全螢幕編輯程式,在整合開發環境下可支援編輯 編譯 連線除錯和執行等過程連續完成。tc提供了與組合語言的介面和在c程式中直接插入彙編指令 的功能,支援以 遠呼叫 和 近呼叫 方式來呼叫使用組合語言編寫的函式。...