第8章 硬盘和显卡的访问与控制(1)

第8章 硬盘和显卡的访问与控制

本章把主引导扇区改造成一个程序加载器,功能是加载用户程序,并执行该程序(将处理器的控制权交给该程序)

8.2 用户程序的结构

分段、段的汇编地址和段内汇编地址

NASM编译器使用汇编指令“SECTION”或者“SEGMENT”来定义段。段只用来分隔程序中的不同内容
Intel要求端在内存中起始物理地址起码是16字节对齐的。物理地址必须能被16整除
段内对齐也有要求,用“align=”

在这里插入图片描述

每个段的汇编地址是相对于整个程序开头(0)的。

为了方便取得该段的汇编地址,可以用section.段名称.start

段定义语句包含vstart=0子句时,标号的汇编地址要从它所在段的开头计算,而且从0开始计算。(即相对于当前段开始计算地址)

用户程序头部[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这里插入图片描述

用户程序头部起码要包含以下信息:
1. 用户程序的尺寸
加载器需要根据这一信息决定读取多少个逻辑扇区
8行,program_end标号表示长度,在编译阶段,将代表的汇编地址填写在这里
在这里插入图片描述

2. 应用程序的入口点,包括段地址和偏移地址。
11、12行,依次声明并初始化偏移地址和短地址。偏移地址取自代码段code_1标号“start”,段地址用表达式section.code_1.start得到
段地址是用伪指令dd声明的,是32位地址,它仅仅是编译阶段确定的汇编地址,在用户加载到内存后,需要根据加载的实际位置重新计算(浮动)。
3. 段重定位表
程序加载到内存后,每个段的地址必须重新确定。段的重定位是加载器的工作,它需要知道每个段在用户程序内的位置。需要一张段重定位表
声明并初始化段的重定位表的项目数,段重定位表在两个标号之间
即`(header_end - code_1_segment)/4`在编辑阶段计算,面是实际的段重定位表,每个表项用dd声明并初始化为1个双字

8.3 加载程序(器)的工作流程

初始化和决定加载位置

加载器要加载一个程序,并使之开始执行,需要决定两件事。第一,从哪个物理内存地址开始加载用户程序;第二,用户程序位于硬盘上的什么位置,它的起始逻辑扇区号是多少。

​ 8-1,6行,加载器程序的一开始声明了一个常数app_lba_start equ 100其作用类似于C语言中的#define A 100。和其他伪指令db、dw、dd不同,用equ声明的数值不占用任何汇编地址,也不在运行时占用任何内存位置。

phy_base dd 0x10000 ;用户程序被加载的物理起始地址,也可用其他位置。

在这里插入图片描述

准备加载用户程序

主引导扇区定义成一个段,vstar=0x7c00
8-1,12-14行,用于初始化栈段寄存器SS和栈指针SP。
16,17行,起始地址是双字单元,在16位处理器上,只能用两个寄存器存放。

在这里插入图片描述

外围设备及其接口

输入输出控制设备集中器(ICH)芯片,该芯片的作用是连接不同的总线,并协调各个I/O接口对处理器的访问。
在这里插入图片描述

处理器通过局部总线连接到ICH内部的处理接口电路。然后,在ICH内部,又通过总线与各个I/O接口相连。

I/O端口和端口访问

具体地说,处理器是通过端口(Port)和外围设备打交道。本质上,端口就是一些寄存器,端口的寄存器位于I/O接口电路中。

端口有的是端口号映射到内存地址空间的,有的是独立编制的,不和内存发生关系。在独立编制中,处理器的地址既连接内存,也连接每一个I/O接口。有一个特殊的引脚M/IO#。当处理器访问I/O端口,那么M/IO#引脚呈高电平,和内存相关的电路就会打开;如果访问I/O端口,那么M/IO#引脚呈低平,内存电路被禁止。

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

通过硬盘控制器端口读扇区数据

硬盘读写的基本单位是扇区,主机和硬盘之间的数据交换是成块的,硬盘是典型的块设备。

以LBA28为例来访问硬盘(28个比特来表示逻辑扇区号,可以管理128GB的硬盘)
个人计算机上的主硬盘控制器被分配了8位端口,从0x1f0到0x1f7。假设现在要从硬盘上读逻辑扇区。

  1. 设置要读取的扇区数量,这个数量写到0x1f2端口。这是个8位端口,每次智能读写255个扇区
mov dx,0x1f2
mox al,0x01
out dx,al
  1. 设置起始LBA扇区号。扇区读写是连续的,因此只需要给出第一个扇区的编号。28位扇区号要分成4段,分别写入端口0x1f3(07位),0x1f4(815位),0x1f5(16~23)和0x1f6(最后四位)。假设读写其实逻辑扇区号为0x02,可编写代码:
mov dx,0x1f3
mov al,0x02
out dx,al
inc dx
mov al,0x00
out dx,al
inc dx
out dx,al
inc dx
mov al,0xe0
out dx,al

在现行体系下,每个PATA/SATA接口允许挂接两块硬盘,分别是主盘和从盘。

请添加图片描述

0x1f6的低4位用于存放24到27位,第4位用于指示硬盘号,0表示主盘,1表示从盘。高3位是“111”,表示LBA模式

  1. 向端口0x1f7写入0x20,请求硬盘读
mov dx,0x1f7
mov al,0x20
out dx,al
  1. 等待读写操作完成。端口0x1f7既是命令端口,又是状态端口。

在这里插入图片描述

在它内部操作期间,它将0x1f7端口的第7位置1,。一旦硬盘系统准备就绪,它将此位清零,同时第3位置1,表明已经准备好,请求主机发送或者接收数据

   mov dx,0x1f7
.waits:
   in al,dx
   and al,0x88  ;10001000 表明我们想保留第7位和第3位,其他无关的清零
   cmp al,0x08 
   jnz .waits
  1. 连续取出数据。0x1f0是硬盘接口的数据端口,而且是16位得到端口。一旦硬盘控制器空闲,且准备就绪,就可以连续从这个端口写入或者读取数据。
    从硬盘读一个扇区:
	mov cx,256      ;总共要读取的字数
	mov dx,0x1f0
.readw:
	in ax,dx
	mov [bx],ax
	add bx,2
	loop .readw

0x1f1端口是错误寄存器,包含硬盘驱动器最后一次执行命令后的状态(错误原因)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
认识实习调研报告全文共9页,当前为第1页。 认识实习调研报告全文共9页,当前为第1页。 认识实习调研报告 专业:计算机科学与技术 姓名: 周艳 班级: 计算计1006 学号:20101221450 一、调研目的: 通过自己的亲身实践,了解当前计算机的发展状况,计算机的组成及计算机的实际应用,为后续计算机专业基础课程的学习打下良好的基础。 二、调研要求: 根据自己的实际情况,走进企业、市场、生活,从实际中获取各方面的知识。内容主要包括如下四个方面。 1. 当前计算机的流行配置。 2. 计算机主要组成部件及外设产品的主流型号(CPU,主板,硬盘,内存,显卡,声卡,网卡,光驱,打印机,扫描仪)。 3. 当前计算机主要应用领域。 4. 当前流行的开发软件。 5. 当前流行的应用软件。 三、调研内容: 1.当前计算机的流行配置: CPU Intel 酷睿i5 760(散) 主板 华硕P7H55 内存 金士顿2GB DDR3硬盘 WD 500GB 7200转 16MB(串口/RE3) 显卡 七彩虹450雷暴鲨 D5 1024M R40 机箱 酷冷至尊特警430(RC-430-KWN1) 电源 航嘉多核R85(新版) 散热器 九州风神冰凌400 显示器 HP 2309p 键鼠装 Razer 地狱狂蛇游戏标配键鼠套装 光驱 先锋DVR-218CHV 复制表格 (可以粘贴到论坛、blog、淘宝等) 2.计算机主要组成部件及外设产品的主流型号(CPU,主板,硬盘,内存,显卡,声卡,网卡,光驱,打印机,扫描仪): 主板 认识实习调研报告全文共9页,当前为第2页。主板(Mother Board, ain Board, System Board)是一台PC的主体所在,主板要完成电脑系统的管理和协调,支持各种CPU、功能卡和各总线接口的正常运行,它是PC机的"总司令部",其上的CPU、CHIPSET、DRAM、BIOS等决定了它是什么"级别",平时我们所说的386、486、Pentium机,其判断的标准就是机器所用的主板和CPU。而其他的附件如显示器、声卡、键盘等,基本上是通用的。主板芯片可分为数字芯片和模拟芯片两种。主板使用的芯片,除了少数几个是模拟芯片外,大部分都是数字芯片。 认识实习调研报告全文共9页,当前为第2页。 CPU CPU即中央处理单元,是英文Ccntral Processing Unitr的缩写,是整个系统的核心,也是整个系统最高的执行单位。它负责整个系统指令的执行,数学与逻辑的运算,数据的存储与传送,以及对内对外输入与输出的控制。 因为CPU是决定电脑性能的核心部件,人们就以它来判定电脑的档次,于是就有了486、586之分。事实上,被称作第五代CPU的586,只是对高于486CPU性能的民间叫法,而无明确定义。生产CPU的不同产商,都为自己的产品规定了不同的名称。Intel公司称作奔腾,Cyrix公司的称作5X86及 6X86,AMD公司的称作K5。 内存 内存是主板上重要的部件之一,它是存储CPU与外围设备沟通的数据与程序的部件。在主机中,内存所存储的数据或程序有些是永久的,有些是暂时的,所以内存就有不同形式的功能与作用,而且存储数据的多少也关系着内存的容量大小,传送数据的快慢也关系着内存的速度,这些都跟内存的种类与功能有关。 光盘驱动和光盘 (一)、CD-ROM光驱 自从个人多媒体计算机标准MPC-1在1990年推出以来,用于个人计算机的只读式CD-ROM光驱已经逐步取代了传统的磁盘介质而成为新一代软件载体,而随着8倍速、10倍速、24倍速、32倍速甚至40倍速产品的不断推出,CD-ROM光驱的性能更高,但价格却更加低廉。一般地,CD-ROM光驱的技术标准最低包括以下要求: 使用12mm的标准盘片。 光盘转动速度为GLV方式(恒定线速度)。 每片光盘容量:至少可达到550MB。 光驱数据舆速率:至少要达到150KBps(Kilo Bytes per sceong,每钞千字节)。 (二)、CD-ROM光驱的性能指标 大多数人都认为CD-ROM光驱的速度越快,其性能就越高,其实不然。CD-ROM光驱的速度是指其驱动电机的转速而言,而要真正衡量其性能高低,还要看下面几个指标表现如何: 1)数据传输速率(Sustained data transfer rate)是CD-ROM光驱最基本的性能指标,它是指CD-ROM光驱在1秒的时间内所能读取的最大数据量。单速/倍速/四倍速/八倍速CD-ROM光驱的数据传输速率分别是150KBps/300KBps/600KBps/1.2MBps。 认识实习调研报告全文共9页,当前为第3页。 认识实习调研报告全文共9页,当前为第3页。 2)平均访问时间(Average access time)又称"平均寻道
第一 计算机基础知识 1、1946年2月15日世界上第一台电子计算机ENIAC〔埃尼阿克在美国宾州大学研制成功。 2、计算机发展史: 第一代:电子管计算机 采用电子管为基本元件,设计使用机器语言或汇编语言。要用于科学和工程计算 第二代:晶体管计算机 采用晶体管为基本元件,程序设计采用高级语言,出现了操作系统,应用到数据和事物处理 及工业控制等领域 第三代:中小规模集成电路计算机 采用集成电路为基本元件,应用到文字处理、企业管理和自动控制等领域 第四代:大规模、超大规模集成电路计算机 采用大规模集成电路为主要功能元件,在办公自动化、电子编辑排版等领域大显身手。 3、计算机的特点 〔1运算速度快 〔2运算精度高 〔3存储能力强 〔4逻辑判断能力强 〔5可靠性高 4、计算机的分类 5、计算机的应用领域 6、计算机的发展趋势 智能化 巨型化 微型化 网络化 多媒体化 7、计算机硬件系统 〔冯。诺伊曼机构 计算机硬件系统由五个基本部分组成, 控制器 运算器 包括算术运算和逻辑运算 存储器 存放程序和数据 输入设备 键盘、鼠标、扫描仪、数码相机等 输出设备。 显示器、打印机、绘图仪 控制器和运算器构成了计算机硬件系统的核心——中央处理器CPU〔Central Processing Unit。 通常把控制器、运算器和内存储器称为主机。 8、计算机指令定义 指令是对计算机进行程序控制的最小单元,是一种采用二进制表示的命令语言。一条指令 通常由两个部分组成,即操作码和操作数。 9、指令的执行过程。 10、什么是计算机软件 计算机软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文 档的完整集合。 11、计算机软件的分类 计算机软件一般可以分为系统软件和应用软件两大类。 12、系统软件分类 1、操作系统 windows 、linux、unix 等 2、编程软件 汇编语言、高级语言、机器语言、C语言、C++、java、C#等 3、数据库软件 SQL Server、Oracle、Mysql和Visual FoxPro等。 13、应用软件分类〔软件名称自己总结 办公应用 平面设计 视频编辑与后期制作 网站开发 辅助设计 三维制作 多媒体开发 程序设计 14、相关定义 操作系统是最基本最重要的系统软件,用来管理和控制计算机系统中硬件和软件资源的大 型程序,是其他软件运行的基础。 数据库管理系统DBMS〔DataBase Management System是数据库系统的核心,由一组用以管理、维护和访问数据的程序构成,提供了一个 可以方便地、有效地存取数据库信息的环境。 15、计算机组成由五部分组成 主机、显示器、键盘、鼠标、外部设备 16、主机的组成部分 CPU INTER和AMD 内存 内存储器和外存储器〔ROM和RAM的区别 主板 支持硬件正常运行的平台 硬盘 笔记本硬盘、台式机硬盘、服务器硬盘。转速、硬盘的三个接口:IDE、SATA、SCSI 光驱 CD-ROM DVD-ROM DVD+-RW 显卡 独立显卡和集成显卡 硬盘、光盘、U盘都属于外部存储器。 〔1随机存储器〔RAM。随机存储器也叫读写存储器.其特点是:存储的信息既可以读出,又 可以向内写入信息,断电后信息全部丢失。 〔2只读存储器〔ROM.只读存储器的特点:存储的信息只能读出,不能写入,断电后信息也 不丢失。 17、衡量一台微型计算机的主要性能指标包括 主频 、字长内存容量和存取周期、高速缓冲存储器〔Cache、总线速度 18、键盘〔考点:四个区自己整理 19、鼠标 分类:无线、有线、蓝牙 操作:选择、单击、双击、拖动、右键单击 20、计算机辅助工程 计算机辅助设计〔CAD 计算机辅助制造〔CAM 计算机集成制造系统〔CIMS 计算机辅助求解〔 CAE 计算机辅助工艺过程设计〔CAPP 21、数据库 定义:数据库〔Database是按照数据结构来组织、存储和管理数据的仓库 发展阶段:人工管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。 22、编程语言的发展 第一代语言--机器语言 第二代语言--汇编语言 第三代语言—面向过程的高级语言。如:C语言、Pascal 等。 第四代语言--面向对象的高级语言。如:C+、C#、Java、Visual Basic等。 第二 计算机病毒与防治 1、定义: 计算机病毒〔Computer Virus是指:能通过某种途径隐藏在计算机的存储介质〔或程序内,本身具有传染性,对 计算机系统具有破坏作用的一组程序或指令的集合。 2、计算机病毒的特性 传染性、潜伏性、破坏性、隐蔽性、可激发性 3、传播途径 <1>通过软盘 <2>通过硬盘 <3>通过光盘 <4>通过网络 4. 计算机病毒的分类 引导型病毒、文件型病毒、混合型病毒 5、计算

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值