具体描述
《微型计算机原理及应用》是作者结合多年的教学实践经验编写而成,以16位机为主讲机型,对内容作了精选,使《微型计算机原理及应用》更具系统性、实用性和先进性。 《微型计算机原理及应用》主要内容有:微型计算机系统基本原理、Intel8086/8088微处理器结构与工作方式、Intel8086/8088指令系统、汇编语言及程序设计,存储器系统、常用输入/输出接口等。
《微型计算机原理及应用》叙述由浅入深,体系结构合理,可以作为高等院校非计算机类专业的“微型计算机原理及应用”、“微型计算机原理与接口技术”、“微型计算机原理与汇编语言程序设计”等相关课程的教学用书,也可供相关技术人员参考。
作者简介
目录信息
1.1 概述
1.1.1 微型计算机的发展概况
1.1.2 微型计算机的特点和应用
1.1.3 微型计算机的主要性能指标
1.2 计算机中的数制及其转换
1.2.1 进位计数制
1.2.2 数制间的转换
1.3 计算机中数的表示方法
1.3.1 有符号数的表示方法
1.3.2 无符号数的表示方法
1.3.3 定点数和浮点数
1.4 二进制编码
1.4.1 BCD码
1.4.2 英文字符表示方法——ASCII码
1.5 微型计算机的基本结构
1.5.1 微型计算机的组成
1.5.2 微型计算机的工作过程
第2章 Intel 8086/8088微处理器
2.1 Intel 8086/8088微处理器基本结构
2.1.1 微型计算机功能结构
2.1.2 微型计算机寄存器结构
2.1.3 微型计算机存储器结构
2.2 微处理器引脚及其功能
2.2.1 8086/8088微处理器引脚及其功能
2.2.2 8086/8088微处理器最小系统
2.2.3 8086/8088微处理器工作时序
2.3 8086/8088寻址方式
2.3.1 立即寻址
2.3.2 直接寻址
2.3.3 寄存器寻址
2.3.4 寄存器间接寻址
2.3.5 寄存器相对寻址
2.3.6 基址-变址寻址
2.3.7 相对基址-变址寻址
2.3.8 隐含寻址
2.4 指令系统
2.4.1 数据传送指令
2.4.2 算术运算指令
2.4.3 逻辑运算和移位指令
2.4.4 串操作指令
2.4.5 程序控制指令
2.4.6 处理器控制指令
第3章 汇编语言程序设计
3.1 汇编语言源程序
3.1.1 汇编语言源程序的结构
3.1.2 汇编语言语句类型及格式
3.1.3 操作数域(operand fields)
3.2 伪指令
3.2.1 数据定义伪指令
3.2.2 符号定义伪指令
3.2.3 段定义伪指令
3.2.4 设定段寄存器伪指令
3.2.5 过程定义伪指令
3.2.6 宏命令伪指令
3.2.7 模块定义与连接伪指令
3.2.8 汇编程序与C语言程序的连接
3.3 DOS功能调用
3.4 汇编语言程序设计基本技术
3.4.1 顺序程序设计
3.4.2 分支程序设计
3.4.3 循环程序设计
3.4.4 子程序设计
第4章 存储器系统
4.1 概述
4.1.1 存储器的基本概念
4.1.2 存储器的分类
4.1.3 存储器的主要技术指标
4.1.4 存储器的读写系统
4.2 随机存储器
4.2.1 静态随机存储器(SRAM)
4.2.2 动态随机存储器(DRAM)
4.3 只读存储器
4.3.1 掩膜ROM
4.3.2 可编程ROM(PROM)
4.3.3 可擦除、可编程ROM(EPROM)
4.3.4 电可擦除可编程ROM(EEPROM)
4.3.5 Flash存储器
4.4 存储器芯片的扩展
4.4.1 存储器与CPU连接时应注意的问题
4.4.2 存储器芯片的扩展
4.5 高速缓冲存储器Cache
4.6 虚拟存储器
第5章 输入输出与中断技术
5.1 输入输出接口
5.1.1 概述
5.1.2 I/O接口的编址方式
5.1.3 I/O接口的数据的传送方式
5.2 简单I/O接口电路
5.2.1 接口电路的基本构成
5.2.2 三态门接口
5.2.3 锁存器接口
5.3 简单I/O接口电路
5.3.1 无条件传送
5.3.2 查询传送
5.3.3 中断方式
5.3.4 直接存储器存储(DMA)方式
5.3.5 I/O处理机方式
5.4 中断技术
5.4.1 中断的基本概念
5.4.2 中断系统
5.4.3 可编程中断控制器8259A
第6章 常用数字接口电路
6.1 可编程并行输入输出接口8255A
6.1.1 并行通信和并行接口
6.1.2 A的内部结构
6.1.3 A的外部引脚
6.1.4 A的控制字
6.1.5 A的工作方式
6.1.6 应用实例
6.2 可编程定时器/计数器8253
6.2.1 内部结构
6.2.2 编程命令和工作方式
6.2.3 应用举例
6.3 可编程串行输入输出接口芯片8251A
6.3.1 串行通信基础
6.3.2 可编程串口接口芯片8251A
第7章 模拟量的输入输出
7.1 概述
7.2 数/模(D/A)转换器
7.2.1 D/A转换器的工作原理
7.2.2 数/模转换器芯片(DAC)及其接口技术
7.3 模/数(A/D)转换器
7.3.1 A/D转换器的工作原理
7.3.2 A/D转换器芯片ADC0809
附录A ASCII码表
附录B /8088指令简表
附录C 、8088微机的中断
附录D BIOS软中断简要列表
参考文献
· · · · · · (收起)
读后感
用户评价
这本书的排版和图示质量给我留下了非常深刻的印象,可以说在同类书籍中,它的视觉呈现达到了一个很高的水准。特别是关于CPU架构和存储器层次结构的插图,那些三维剖面图和数据流向图绘制得极其精细,即便是像我这样对纯理论有些抵触的读者,也能通过这些图示迅速建立起宏观的认知框架。然而,这种精美的背后,似乎也牺牲了内容的深度和广度。比如,在讨论指令集架构(ISA)时,它主要集中在经典的RISC-V或者某种历史悠久的指令集上,对近年来迅速崛起的向量指令集扩展,或者针对特定领域(如AI加速)的定制指令集,几乎没有涉及。这让我感觉作者的知识体系可能略微滞后于行业前沿。阅读过程中,我经常会想,既然图画得这么棒,为什么不把更多的篇幅用来展示现代SoC中常见的片上总线结构,比如AXI或TileLink的简化模型,并配上动态的时序图?现在的内容,虽然逻辑清晰,但总是在关键的、能体现“现代”和“应用”差异的地方戛然而止,留下了太多的想象空间,对于追求效率的工程师来说,这反而是一种负担。
从编程实践的角度来看,这本书的实用性略显不足,它似乎更侧重于“是什么”而不是“怎么做”。在介绍了各种总线和控制器之后,我本能地期待能够看到一些低级别的硬件抽象层(HAL)代码示例,哪怕是用C语言编写的,用来说明如何通过直接的内存映射(MMIO)来读写某个设备的寄存器,以点亮一个LED或者读取一个传感器的值。但全书翻下来,这种直接与硬件对话的代码几乎找不到踪影。取而代之的是很多关于状态机和逻辑电路的纯理论分析。这种风格使得这本书在指导我进行具体的嵌入式系统设计时,显得有些力不从心。我理解原理的重要性,但对于一个“应用”导向的书籍来说,如果不能提供从理论到实践的桥梁,那么其价值就会大打折扣。我更倾向于那种,即使原理部分讲得没这么漂亮,但只要能在每一章末尾附带一个“动手实验”或“实践案例”的章节,让我能立即在硬件上验证所学知识,那才是真正对我口味的好书。
我个人对这本书的章节安排感到有些困惑,它的逻辑跳跃性比较大,似乎是把不同层级的知识点强行塞进了一个框架里。比如,前三章紧密围绕CPU内部的流水线设计和中断处理机制展开,讲解得非常深入和系统,读起来酣畅淋漓,感觉自己真的在“理解”计算机的脉搏。但是,紧接着第四章突然转向了外部设备的接口标准,比如USB和PCIe的协议概述,这些内容的论述方式又突然变得非常概括和描述性,缺乏前面章节那种细致的、原理驱动的分析。我更希望看到的是,如何将这些外部接口的底层驱动逻辑与操作系统内核的I/O子系统进行高效的整合,这才是“原理”与“应用”结合的真正难点。目前的结构,读起来更像是两本不同作者写的书被强行拼凑在了一起。如果能有一个更明确的过渡,比如先从CPU扩展到内存控制器,再到I/O通道,最后才讨论驱动和协议,或许会更加顺畅,现在这种感觉就像是刚学会了走路,立刻就要跳去学开飞机了。
这本书拿到手的时候,我主要冲着那个“应用”二字去的,毕竟现在的技术更新太快,光有理论根本应付不了实际工作。我本来以为它会侧重于某个特定领域的嵌入式开发或者物联网的实践案例,比如如何用树莓派搭建一个小型服务器,或者如何用Arduino实现一个简单的自动化控制系统。结果读下来,发现它对这些实操层面的东西涉猎很浅,更像是在讲授基础概念的“如何实现”而非“如何应用”。举个例子,书中花了大篇幅介绍总线仲裁机制和缓存一致性协议,这些确实是原理层面的核心,但我真正想看的是,在实际的SoC设计中,这些协议是如何通过软件接口暴露出来,供我们这些应用开发者调用的。如果能多一些基于主流开发板的、有清晰硬件连接图和对应代码示例的章节,哪怕只是展示如何通过操作系统API去访问底层寄存器,对我的帮助都会大得多。现在感觉,这本书更像是一个给电子工程专业大三学生的教材,内容扎实,但离我们这些急着上马项目的工程师的需求,还是差了一点火候。我期待的是一本能直接上手干活的“工具书”,而不是一本需要结合其他参考资料才能理解透彻的“理论参考书”。
这本书在软件层面的讨论,尤其是关于操作系统与硬件交互的部分,给我的感觉是“蜻蜓点水”,很多关键的衔接点都没有深入挖掘。例如,在涉及到内存管理单元(MMU)和虚拟内存的章节,书中清晰地解释了页表结构和TLB的作用,这是非常好的理论基础。然而,当涉及到用户程序如何通过系统调用请求内核分配内存,以及内核如何动态地进行内存页的分配和回收时,描述就变得非常模糊了。它只是笼统地提到了“操作系统负责管理”,但没有展示一个现代Linux内核中, Slab分配器或者伙伴系统(Buddy System)是如何利用这些硬件特性来优化性能的。对于一个追求实践的读者来说,我更希望看到的是,当一个进程发生缺页中断时,CPU硬件和OS内核之间那个精妙的交接过程——硬件触发中断,CPU上下文切换,OS内核代码执行,访问磁盘,最后恢复执行。这本书在这部分的处理上,似乎默认读者已经对操作系统原理有非常深入的了解,而没有把这部分作为“微型计算机应用”的一个重要环节来详细剖析。