CPU
CPU可以接读写3个地方的数据:
(1)CPU内部的寄存器
(2)内存单元
(3)端口
端口
端口:物理上可能处于不同的芯片的一组可以由CPU读写的寄存器。
CPU将这些寄存器当做端口,对它们统一编址,从而建立一个统一的端口地址空间。
(1)只能用in 和out对端口进行读写,只能用ax或al存放从端口读入的数据或要发送到端口中的数据。8bit用al,16bit用ax。
例:
in al,60h
从60h端口读入一个字节。
out 60h,al
向60h写入一个字节。
(2)shl、shr指令
shl:逻辑左移指令·
功能:(1)将一个寄存器或内存单元中的数据向左移位
(2)将最后移出的一位写入CF中
(3)最低位用0补充。
例:
mov al,01001000b
shl al,1 ;将al中的数据左移一位
执行后(al)=10010000b (CF)=0
如果移动位数大于1,必须将移动位数放在cl中
例:
mov al,01010001b
mov cl,3
shl al,cl ;将al中的数据左移三位
(al)=10001000b cf=0
shr:逻辑右移指令
功能:(1)将一个寄存器或内存单元中的数据向右移位
(2)将最后移出的一位写入CF
(3)最高位用0补充
如果移动位数大于1,必须将移动位数放在cl中。其余均同shl