设为首页 加入收藏

TOP

汇编入门学习笔记 (十二)―― int指令、端口(二)
2015-07-20 18:05:03 来源: 作者: 【 】 浏览:7
Tags:汇编 入门 学习 笔记 十二 int 指令 端口
ov dx,0 ;ds:dx指向字符串的首地址 data:0 mov ah,9 int 21h mov ax,4c00h int 21h code ends end start


二、端口


各种芯片(网卡,显卡等)都有一组可以由CPU读写的寄存器。CPU可以通过这些寄存器读取数据,或者操控芯片。CPU把这些寄存器当做端口,对这些寄存器进行统一编址。每个端口宅地址空间中都有一个地址。


1. in和out指令


访问端口用in和out

如果:

in al,60h ; 从60h端口读取数据放到al中

注意:只能用ax或者al来存放从端口中读入的数据或要发送到端口的数据。


对0~255以内的端口进行读写时:

in al,20h

out 20h,al


对256~65535的端口进行读写时,端口号放在dx中:

mov dx,3f8h

in al.dx

ou dx,al


2. shl和shr指令


shl:左移指令,最低位补0,将移出的追后以为写入CF中


如果是移1位就:

shl al,1


如果移动大于1位,必须将移动的位数放在cl中

mov cl,3

shl al,cl


shr是右移,其他与shl一样


3. CMOS RAM芯片


PC中有一个靠电池供电CMOS RAM芯片,它包含一个实时种和一个有128个存储单元的RAM存储器。


它有两个端口:

70h:保存要读取内存单元的地址

71h:读取内存单元


CMOS RAM中存储的时间信息


0:秒;2:分;

4:时;7:日;

8:月;9:年;


例子:在屏幕显示月份。

assume cs:code

code segment

start:
	mov al,8
	out 70h,al
	in al,71h
	
	mov ah,al
	mov cl,4
	shr ah,cl
	and al,00001111b
	
	add ah,30h   ;'0' 的ASCII值
	add al,30h
	
	mov bx,0b800h
	mov es,bx
	mov byte ptr es:[160*12+40*2],ah
	mov byte ptr es:[160*12+40*2+2],al
	
	mov ax,4c00h
	int 21h

code ends

end start




首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU 2565 放大的X 下一篇hdu 4601 Letter Tree 2013多校1-2

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: