微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 汇编入门学习笔记 (十二)—— int指令、端口

汇编入门学习笔记 (十二)—— int指令、端口

时间:11-09 来源:互联网 点击:

v bh,0 mov dh,5 mov dl,12 int 10h mov ax,data mov ds,ax mov dx,0 ;ds:dx指向字符串的首地址 data:0 mov ah,9 int 21h mov ax,4c00h int 21h code endsend 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:codecode segmentstart:mov al,8out 70h,alin al,71hmov ah,almov cl,4shr ah,cland al,00001111badd ah,30h   ;0 的ASCII值add al,30hmov bx,0b800hmov es,bxmov byte ptr es:[160*12+40*2],ahmov byte ptr es:[160*12+40*2+2],almov ax,4c00hint 21hcode endsend start

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top