彙編語言(王爽)實驗十五

實驗十五

安裝一個新的int 9中斷例程 功能:按下A鍵後,除非不鬆開,如果松開,就顯示滿屏幕的A,其他鍵照常處理

assume cs:code
 
stack segment
	db 128 dup(0)
stack ends
 
code segment
start:		mov ax,stack			
			mov ss,ax
			mov sp,128
			
			push cs					
			pop ds
			mov si,offset ni9		
			mov ax,0				
			mov es,ax
			mov di,204H
			mov cx,offset ni9e - offset ni9
			cld
			rep movsb
			
			
			push es:[9*4]		
			pop es:[200H]
			push es:[9*4+2]			
			pop es:[202H]
			
			
			cli
			mov word ptr es:[9*4],204H
			mov word ptr es:[9*4+2],0
			sti
			
			mov ax,4c00H
			int 21H
			
ni9:		push ax
			push es
			push bx
			push cx
			
			
			mov bx,0
			mov es,bx
			
			pushf					;	call BIOS origin int9
			call dword ptr es:[200H]
			
			in al,60H				
			
			cmp al,9EH				; 如果不是斷碼就不顯示
			jne ni9r
			
			
			mov bx,0b800H
			mov es,bx
			mov bx,0
			mov cx,2000				; 一頁2000個字符 
lp:			mov byte ptr es:[bx],41H
			add bx,2
			loop lp
			
ni9r:		pop cx
			pop bx
			pop es
			pop ax
			iret
ni9e:		nop			
			
code ends
 
end start

原文:王爽 《彙編語言》 實驗 15

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章