码迷,mamicode.com
首页 > 其他好文 > 详细

8042 Keyboard Microcontroller

时间:2014-05-26 05:25:12      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:键盘

;--------------------------------------------------------------------------------------
; Project: info.asm
; Name: zwp
; Date: 2014/5
;--------------------------------------------------------------------------------------


data segment
	thirty	db	30		; value for mul instruction
	
	msg0	db	'-----------------------HeBei University of Enginging------------------------!'
	msg1	db	'----------------------- COMPUTER SCIENCE 2013-5 -----------------------------!'
	msg2	db	'-----------------------------------------------------------------------------!'
	msg3	db	'----- I LOVE YOU                                                             !'
	msg4	db	'----------------------I LOVE YOU                                             !'
	msg5	db	'----------------------------------------I LOVE YOU                           !'
	msg6    db      '------------------- Believe Yourself Your Will Cool--------------------------!'
	msg7	db	'One day I meet you                                                           !'
	msg8	db	'I am very happy, because I found a beautiful gril                            !'
	msg9    db      'Yes I am sure I like you!                                                    !'
	
	errmsg	db	'No You don't like me, I .......                                              !'
	
data ends

stack segment
	db	256 dup(0)
	tos	label word
stack ends

code segment
	
	main 	proc 	far
	
	assume cs:code, ds:data, ss:stack

start:
	
	mov ax, stack
	mov ss, ax
	mov sp, offset tos			; 设置堆栈

	push ds
	sub ax, ax
	push ax
	
	mov ax, data
	mov ds, ax				; 设置数据段
	
begin:
	mov ah, 1	
	int 21h					; call bios 21h 1 function 
	sub al, '0'
	jc error				; if <0 goto error
	cmp al, 9
	ja  error				; if (0, 9)‘s character is true
	
	mov bx, offset msg0			; point first message
	mul thirty				; ax = al * 30
	add bx, ax
	call display				; show message
	jmp begin	


;------------------------------------------------------------------
; if error will be executed
;-------------------------------------------------------------------
error:
	mov bx, offset errmsg			; bx = errmsg's offset address
	call display
	ret


;--------------------------------------------------------------------
; display character
;---------------------------------------------------------------------

display proc near
	
	mov cx, 30	

disp1:
	mov dl, [bx]
	call dispchar			; show char
	inc bx
	loop disp1			; cx--
	mov dl, 0dh			; 回车
	call dispchar
	mov dl, 0ah			; 换行
	call dispchar
	ret

display endp


dispchar proc near
	
	mov ah, 2
	int 21h				; show char
	ret

dispchar endp


main endp
code ends
end start


	




















写在前面:

 

  读了几本操作系统的书籍,发现一个不足,(估计也不算不足)那就是大多数讲操作系统原理的书,只涵盖操作系统--这一软件层面的解释,像I/O, 内存管理,进程/线程管理,文件系统,网络(有些只是稍微略带一点介绍)等等。

向设备驱动,BIOS,内核层面涉及的很少,具体的话就更是少之又少,估计和硬件联系的太紧密,所以难度大一些吧!

 

往具体了看其实一个系统(软件 + 硬件)它们是密不可分的,只要越往底层走越明显。太紧密了。前些天翻了下模电发现(运算放大)涵盖了模电很大一部分,最令我感觉模电 “吊炸天”的是 加法器,减法器,乘法器,除法器,积分,微分,指数....都可以在模电中实现,大家都知道(CPU中 + - * /)都是用加法实现的(具体可参看数电加法器一节)。。。越来越发现自己要学的太多了,没办法奋斗吧——少年!

 

进入正题:

                                            8042 Keyboard Microcontroller

bubuko.com,布布扣

bubuko.com,布布扣

具体细节请参阅 8042的数据手册,我就不一一细说了。

 

来段汇编代码:

 

 

 

8042 Keyboard Microcontroller,布布扣,bubuko.com

8042 Keyboard Microcontroller

标签:键盘

原文地址:http://blog.csdn.net/qqzwp/article/details/26751289

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!