有勇气的牛排博客
☰

汇编 端口 shl和shr指令


知止自律打卡-微信小程序APP
一款微信自律打卡小程序,支持自定义打卡项目、习惯记录、项目日记、专注计时与数据统计。自律打卡、学习打卡、读书打卡、健身打卡、运动打卡、减肥打卡、戒色打卡、养生打卡、戒烟、戒酒、戒熬夜等多种场景。万能打卡模板自由创建。可自定义每日打卡目标,记录习惯连续天数,可视化追踪成长进度。
了解产品详情 →
微信搜索「知止自律打卡」
知止自律打卡微信小程序

1 端口

CPU可以直接读写以下3个地方的数据:

  • CPU内部的寄存器
  • 内存单元
  • 端口

1.1 端口的读写

  1. 解决了串/并行 改变的问题

  2. 对端口的读写不能用mov,push,pop等;只有in和out

  3. 访问端口:

    in al,60h ;从60h号端口读入一个字节
  4. 对0~255以内的端口进行读写时:

    in al,20h ;20h端口读入一个字节 out 20h,al ;往20h端口写入一个字节

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

    mov dx,3f8h ;将端口号3f8h送入dx in al,dx ;从3f8h端口 读入 一个字节 out dx,al ;向3f8h端口 写入 一个字节

1.2 CMOS RAM芯片

  1. 用途:写时间,时间错误时,计算机不工作。
  2. 地址端口:70h
    数据端口:71h

1.3 shl 和 shr 指令

  1. 定义:是逻辑移位指令

  2. shl:是左移指令
    (1)将一个寄存器或寄存单元中的数据向左移位。
    (2)将最后移除的移位写入CF中。
    (3)最低位用0补充。
    eg.

    指令: mov al, 01001000b shl al,1 ;将al中的数据左移一位 执行后:(al)=10010000b CF=0 (1)左移 原数据: 01001000 左移后: 01001000 (2)将最后移除的移位写入CF中 原数据: 01001000 左移后: 1001000 CF=0 (3)最低位用0补充 原数据: 01001000 左移后: 10010000
  3. shr 是逻辑右移指令,它和shl所进行的操作刚好相反
    (1) 将一个寄存器or内存单元中的数据向右移位。
    (2)将最后移出的一位写入CF中。
    (3)最高位用0补充。

评论区

×
×