美文网首页自主学习之路
7-4 汇编学习笔记(3)

7-4 汇编学习笔记(3)

作者: Edingburgh | 来源:发表于2019-07-05 00:03 被阅读5次

2)准备加载用户程序

我们将主引导扇区程序定义成一个段

SECTION mbr align = 16 vstart = 0x7c00

这一部分不是很清楚,等过一段时间再看看

3) 外围设备及其接口

加载器的下一个工作是从硬盘读取用户程序,即访问其他硬件。

所有和计算机相连的设备分两种,输入设备和输出设备。

输入设备:

  • 键盘
  • 鼠标
  • 麦克风
  • 摄像头
    输出设备:
  • 显示器
  • 打印机
  • 扬声器
    统称I/O设备。

每个设备的大概工作方式:

  • 扬声器:需要模拟信号。每个扬声器需要两根线,用的插头是无线电行业里的标准。话筒也一样
  • 键盘,用一根线向主机传送按键的 ACSII码,且一直采用PS/2标准
  • USB键盘尽管也使用串行方式工作,信号却和老式键盘不同。

需要与处理器沟通的设备都需要一个I/O接口。
I/O接口可以是一个电路板,也可以是一块小芯片。其本质是一个典型的变换器或说是一个翻译器。

可能会遇到两个麻烦的问题:

  • 不能将所有的I/O接口直接与处理器相连。
  • 每个设备的I/O接口都抢着和处理器说话,容易发生冲突。

1,问题采用总线技术。说有外围设备包括处理器都连接到这排电线。 称为 Bus。

2.问题是使用输入输出控制设备集中器芯片 ICH。

ICH内集成了一些常规的外围设备接口,如USB,PATA,SATA 老式总线接口(IPC),时钟等。 另外还提供对PCI或者PCI Experss 总线的支持,该总线向外延伸,连接着主板的若干扩展槽,即插槽。

除局部总线和PCI Express总线,USB金额口就可能有很多同类型设备,故涉及线路复用和仲裁问题,他们也有自己的总线体系,称为通信总线或设备总线。

4) I/O端口和端口访问

一句话,处理器通过端口来和外围设备打交道,本质上,端口就是一些寄存器,处理器内部的寄存器。不同在于,这些叫端口的寄存器位于I/O接口电路中。

每个I/O接口都有还几个端口,分别有不同的目的。
例如连接硬盘的PATA/SATA接口就有好几个端口,分别为:

  • 命令端口。(当向该端口写入0x20时,表明是从硬盘读数据;写入0x30时,表明时向硬盘写数据)
  • 状态端口。(处理器根据这个端口的数据判断硬盘工作是否正常,操作是否成功,发生了那种错误)
  • 参数端口。(处理器通过这些端口告诉硬盘读写的扇区数量,以及起始的逻辑扇区号)
  • 数据端口。(通过这个端口连续的取得要读出的数据,或连续的发送要写入硬盘的数据。

每个端口都有自己的数据宽度。早期的系统端口可以是 8位的 16位的,现在会是32位的。到底是8位还是16位,这是设备和I/O接口制造者的自由。

端口再不同的计算机系统有不同的实现方式。在一些计算机系统中,端口号是映射到内存地址空间的。蔽日 0x00000
0xE0000是真实的物理内存地址,而0xE00010xFFFFF是从很多I/O接口哪里映射过来的。当访问这部分地址,实际是访问I/O接口。

而另一些是独立编址的,不和内存发生关系。这里只讨论独立编址。

端口的访问

不能使用mov类似的指令,取而代之的是in和out
in指令是从端口读:

in al,dx

in ax,dx

即,in指令的目的操作数必须是 寄存器AL或AX,当访问8位端口,使用寄存器AL;16位,使用AX。in指令的源操作数应当是寄存去DX。

out指令即通过端口向外围设备发送数
其目的caozs可以是8位立即数或寄存器DX,源操作数必须是寄存器AL或AX。

out 0x37,al ;写0x37端口(这是一个8位端口)
out 0xf5,ax ;写0xf5
端口(16位端口)
out dx,al
out dx,ax

in和out都不影响任何标志位

相关文章

  • 7-4 汇编学习笔记(3)

    2)准备加载用户程序 我们将主引导扇区程序定义成一个段 SECTION mbr align = 16 vstar...

  • ARM64汇编学习笔记一(初始汇编)

    ARM64汇编学习笔记一(初始汇编)

  • 汇编语言之基础

    本系列为学习<汇编语言> 王爽版 的学习笔记 [TOC] 汇编语言是什么? 汇编语言是直接在硬件之上工作的编程语言...

  • 汇编语言 学习笔记(三)

    汇编语言学习笔记 四、汇编语言程序格式 语句基本格式 汇编语言程序中的语句由 4 项组成,格式如下: 名字(nam...

  • 汇编学习笔记

    工具:DTDebug(VT-O)专业版V1.0.025主要有四个窗口:反汇编窗口、寄存器窗口、堆栈窗口、内存窗口。...

  • 汇编学习笔记

    抄的博客 通用寄存器: AX,BX,CX,DX 称作为数据寄存器: AX (Accumulator):累加寄存器,...

  • 汇编学习笔记

    地址 指令执行过程 cpu从cs:ip所组成的地址中读取指令,将指令放到指令缓存器中 IP = IP + 所读指令...

  • 汇编学习笔记

    汇编学习笔记 花了一周的时间,对汇编做了一次深刻的复习和再学习,想记下来的东西有很多,我尽量把总结写全。 0x01...

  • 7-4周复盘|尽可能输出与输入相平衡

    7-4周复盘: 【1】Kindle读书打卡 √ 【2】(纸质书)读书10个番茄钟 ×完成3个 【3】《好好学习》读...

  • 汇编入门(长文多图,流量慎入!!!)

    8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...

网友评论

    本文标题:7-4 汇编学习笔记(3)

    本文链接:https://www.haomeiwen.com/subject/spcjhctx.html