8086 汇编学习 Part 9

news/2024/10/10 18:26:53

端口的读写

CPU 的邻居

  1. CPU 内部的寄存器
  2. 内存单元
  3. 端口(各种接口卡、网卡,显卡,主板上的接口芯片等)
  • 各种芯片工作时,都有一些寄存器由 CPU 读写
  • 从 CPU 角度,将各寄存器当端口,并统一编制
  • CPU 用统一的方法与各种设备通信
    屏幕截图 2024 05 03 230106

读写端口的指令

  • 在对 \([0,255]\) 的端口进行读写时,端口号用立即数给出
  • 在对 \([256,65535]\) 的端口进行读写时,端口号放在 DX 中
  • IN 和 OUT 指令中,只能用 AX 或 AL 来存放从端口中读入的数据或要发送到端口的数据。
  • 访问 8 位端口时用 AL ,访问 16 位端口时用 AX

I/O 端口分配

屏幕截图 2024 05 03 230951

IN

功能

CPU 从端口读取数据

格式

IN 数据 , 端口号

执行时与总线相关的操作

  1. CPU 通过地址线将地址信息发出
  2. CPU 通过控制线发出端口读命令,并选中端口所在的芯片,并通知要从中读取数据
  3. 端口所在的芯片将对应端口中的数据通过数据总线送入 CPU

OUT

功能

CPU 往端口写入数据

格式

OUT 端口号 , 数据

CMOS RAM 芯片关于端口读写的操作

CMOS RAM 芯片

  1. 包含一个实时钟和一个有 128 个存储单元的 RAM 存储器
  2. 128 个字节的 RAM 中存储:内部实时钟、系统配置信息、相关的程序(用于开机时配置系统信息)
  3. CMOS RAM 芯片靠电池供电,关机后其内部的实时钟仍可正常工作,RAM 中的信息不丢失
  4. 该芯片内部有两个端口,端口地址为 70H 和 71H,CPU 通过这两个端口读写 CMOS RAM
  5. 70H 地址端口,存放要访问的 CMOS RAM 单元的地址
  6. 71H 数据端口,存放从选定的单元中读取的数据,或要写入到其中的数据
  7. 读取 CMOS RAM 要先将要读取的单元地址送入 70H 地址端口,再从数据端口 71H 读出指定单元的内容

CMOS RAM 中存储的时间信息

内容
地址 00 01 02 03 04 05 06 07 08 09
  • 当前时间在 CMOS RAM 中用 6 个字节存放,用 BCD 码存放
  • 6 个信息的长度都为 1 个字节

外设的连接与中断

CPU 在执行指令过程中,可以检测到发送过来的中断信息,引发中断过程,处理外设的输入。

外中断 :由外部设备发生的事件引起的中断

  • 几乎所有由外设引发的外中断,都是可屏蔽中断
  • 不可屏蔽中断在系统中有必须处理的紧急情况发生时用来 CPU 的中断信息

可屏蔽中断

  • 可屏蔽中断时 CPU 可以不响应的外中断
  • CPU 是否响应可屏蔽中断,要看标志寄存器 IF 位的设置
  • 当 CPU 检测到可屏蔽中断信息时,如果 IF = 1,则 CPU 在执行完当前指令后响应中断,引发中断过程;如果 IF = 0,则不影响可屏蔽中断。

不可屏蔽中断

  • 不可屏蔽中断是 CPU 必须响应的外中断
  • 当 CPU 检测到不可屏蔽中断信息时,则在执行完当前指令后,立即响应,引发中断过程
  • 对于 8086 CPU 不可屏蔽中断的中断类型码固定为 2

外中断处理过程

可屏蔽中断所引发的中断过程

  1. 取中断类型码(可屏蔽中断信息来自于 CPU 外部,中断类型码通过数据总线送入 CPU)
  2. 标志寄存器入栈,IF = 0 , TF = 0(将 IF 置 0 的原因是 :进入中断处理程序后,禁止其他的可屏蔽中断,如果在中断处理程序中需要处理可屏蔽中断,可以用指令将 IF 置 1)
  3. CS 和 IP 入栈
  4. \((IP) = (中断类型码 \times 4)\)\((CS) = (中断类型码 \times 4)\)

不可屏蔽中断的中断过程(不必取中断码,固定为2)

  1. 标志寄存器入栈,IF = 0,TF = 0
  2. CS 和 IP 入栈
  3. (IP) = (8) ,(CS) = (0AH)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/27688.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

读天才与算法:人脑与AI的数学思维笔记18_心流机

读天才与算法:人脑与AI的数学思维笔记18_心流机1. 心流机 1.1. 在音乐中你会期盼旋律从不稳定解决到稳定,最终实现某种张力的解决 1.2. 将马尔可夫链系统中的自由与约束条件结合起来,从而形成一种更具结构化的组合 1.3. 美籍匈牙利心理学家米哈里契克森米哈赖(Mihaly Csiks…

Linux网络-ssh远程连接协议

SSH基础 1.ssh协议概述SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能; SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令; SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输…

部署YUM仓库及NFS共享服务

目录1.YUM仓库服务(1)部署YUM软件仓库(1)准备安装源(2)构建CentOs7软件仓库(3)在软件仓库中加入非官方RPM包组(3)如何搭建本地源仓库、ftp源仓库?2.NFS共享存储服务(1)使用NFS发布共享资源 1.YUM仓库服务 (1)部署YUM软件仓库 YUM 基于RPM包构建的软件更新机制 可…

GLASGOW SMILE: 1.1

靶机描述 靶机地址:https://download.vulnhub.com/glasgowsmile/GlasgowSmile-v1.1.zipDescription Title: Glasgow SmileUsers: 5 Difficulty Level: Initial Shell (Easy) - Privileges Escalation (Intermediate) Hint: Enumeration is the key.If you are a newbie in Pen…

Linux网络-Yum仓库

Yum仓库 1.yum概述 Yum (Yellow dog Updater, Modified) 是一个基于rpm包构建的软件更新机制,能够自动解决软件包之间的依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。节省了日常工作中的大量查找安装依赖包的时间。 2.yum工作原理 yum依赖于环境,…

DarkHole: 2

靶机描述 靶机地址:https://download.vulnhub.com/darkhole/darkhole_2.zipDescription Difficulty:Hard This works better with VMware rather than VirtualBox Hint: Dont waste your time For Brute-Force信息收集 主机发现 利用arp-scan -l命令扫描靶机IP arp-scan -l开放…

Hackable: III

靶机描述 靶机地址:https://download.vulnhub.com/hackable/hackable3.ovaDescription Focus on general concepts about CTF Difficulty: Medium This works better with VirtualBox rather than VMware.信息收集 nmap探测详细端口信息 nmap -sS -sV -A -p- 192.168.56.106探…

Hackable: II

靶机描述 靶机地址:https://download.vulnhub.com/hackable/hackableII.ovaDescription Difficulty: easy This works better with VirtualBox rather than VMware信息收集 端口扫描 通过nmap扫描目标主机发现开放了3个端口 nmap -A -p 1-65535 192.168.56.101FTP发现Web发现 …