热搜关键词: 手机硬件物联网芯片封装C语言

pdf

x86汇编语言 从实模式到保护模式

  • 1星
  • 2022-08-26
  • 68.16MB
  • 需要1积分
  • 3次下载
  • favicon收藏
  • rep举报
  • free评论
标签: 汇编

汇编

《x86汇编语言:从实模式到保护模式》主要讲述INTEL  x86处理器的16位实模式、32位保护模式,至于虚拟8086模式,则是为了兼容传统的8086程序,现在看来已经完全过时,不再进行讲述。《x86汇编语言:从实模式到保护模式》的特色之一是提供了大量典型的源代码,这些代码以及相配套的工具程序可以到书中指定的网站,或者电子工业出版社华信教育资源网搜索下载。

每一种处理器都有它自己的机器指令集,而汇编语言的发明则是为了方便这些机器指令的记忆和书写。尽管汇编语言已经较少用于大型软件程序的开发,但从学习者的角度来看,要想真正理解计算机的工作原理,掌握它内部的运行机制,学习汇编语言是必不可少的。本书采用开源的NASM汇编语言编译器和VirtualBox虚拟机软件,以个人计算机广泛采用的Intel处理器为基础,详细讲解了Intel处理器的指令系统和工作模式,以大量的代码演示了16/32/64位软件的开发方法,介绍了处理器的16位实模式和32位保护模式,以及基本的指令系统。这是一本有趣的书,它没有把篇幅花在计算一些枯燥的数学题上。相反,它教你如何直接控制硬件,在不借助于BIOS、DOS、Windows、Linux或者任何其他软件支持的情况下来显示字符、读取硬盘数据、控制其他硬件等。本书可作为大专院校相关专业学生和计算机编程爱好者的教程。

第1部分  预备知识

第1章  十六进制计数法

1.1  二进制计数法回顾

1.1.1  关于二进制计数法

1.1.2  二进制到十进制的转换

1.1.3  十进制到二进制的转换

1.2  十六进制计数法

1.2.1  十六进制计数法的原理

1.2.2  十六进制到十进制的转换

1.2.3  十进制到十六进制的转换

1.3  为什么需要十六进制

本章习题

第2章  处理器、内存和指令

2.1  最早的处理器

2.2  寄存器和算术逻辑部件

2.3  内存储器

2.4  指令和指令集

2.5  古老的Intel  8086处理器

2.5.18086的通用寄存器

2.5.2  程序的重定位难题

2.5.3  内存分段机制

2.5.48086的内存分段机制

本章习题

第3章  汇编语言和汇编软件

3.1  汇编语言简介

3.2  NASM编译器

3.2.1  NASM的下载和安装

3.2.2  代码的书写和编译过程

3.2.3  用HexView观察编译后的机器代码

本章习题

第4章  虚拟机的安装和使用

4.1  计算机的启动过程

4.1.1  如何将编译好的程序提交给处理器

4.1.2  计算机的加电和复位

4.1.3  基本输入输出系统

4.1.4  硬盘及其工作原理

4.1.5  一切从主引导扇区开始

4.2  创建和使用虚拟机

4.2.1  别害怕,虚拟机是软件

4.2.2  下载和安装Oracle  VM  VirtualBox

4.2.3  虚拟硬盘简介

4.2.4  练习使用FixVhdWr工具向虚拟硬盘写数据

第2部分  实模式

第5章  编写主引导扇区代码

5.1  本章代码清单

5.2  欢迎来到主引导扇区

5.3  注释

5.4  在屏幕上显示文字

5.4.1  显卡和显存

5.4.2  初始化段寄存器

5.4.3  显存的访问和ASCII代码

5.4.4  显示字符

5.4.5  MOV指令的格式

5.5  显示标号的汇编地址

5.5.1  标号

5.5.2  如何显示十进制数字

5.5.3  在程序中声明并初始化数据

5.5.4  分解数的各个数位

5.5.5  显示分解出来的各个数位

5.5  使程序进入无限循环状态

5.7  完成并编译主引导扇区代码

5.7.1  主引导扇区有效标志

5.7.2  代码的保存和编译

5.8  加载和运行主引导扇区代码

5.8.1  把编译后的指令写入主引导扇区

5.8.2  启动虚拟机观察运行结果

5.9  程序的调试技术

5.9.1  开源的Bochs虚拟机软件

5.9.2  Bochs下的程序调试入门

本章习题

第6章  相同的功能,不同的代码

6.1  代码清单6-1

6.2  跳过非指令的数据区

6.3  在数据声明中使用字面值

6.4  段地址的初始化

6.5  段之间的批量数据传送

6.6  使用循环分解数位

6.7  计算机中的负数

6.7.1  无符号数和有符号数

6.7.2  处理器视角中的数据类型

6.8  数位的显示

6.9  其他标志位和条件转移指令

6.9.1  奇偶标志位PF

6.9.2  进位标志CF

6.9.3  溢出标志OF

6.9.4  现有指令对标志位的影响

6.9.5  条件转移指令

6.10  NASM编译器的$和$$标记

6.11  观察运行结果

6.12  本章程序的调试

6.12.1  调试命令“n”的使用

6.12.2  调试命令“u”的使用

6.12.3  用调试命令“info”察看标志位

本章习题

第7章  比高斯更快的计算

7.1  从1加到100的故事

7.2  代码清单7-1

7.3  显示字符串

7.4  计算1到100的累加和

7.5  累加和各个数位的分解与显示

7.5.1  栈和栈段的初始化

7.5.2  分解各个数位并压栈

7.5.3  出栈并显示各个数位

7.5.4  进一步认识堆栈

7.6  程序的编译和运行

7.6.1  观察程序的运行结果

7.6.2  在调试过程中察看栈中内容

7.78086处理器的寻址方式

7.7.1  寄存器寻址

7.7.2  立即寻址

7.7.3  内存寻址

本章习题

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

8.1  本章代码清单

8.2  用户程序的结构

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

8.2.2  用户程序头部

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

8.3.1  初始化和决定加载位置

8.3.2  准备加载用户程序

8.3.3  外围设备及其接口

8.3.4  I/O端口和端口访问

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

8.3.6  过程调用

8.3.7  加载用户程序

8.3.8  用户程序重定位

8.3.9  将控制权交给用户程序

8.3.10  处理器的无条件转移指令

8.4  用户程序的工作流程

8.4.1  初始化段寄存器和栈切换

8.4.2  调用字符串显示例程

8.4.3  过程的嵌套

8.4.4  屏幕光标控制

8.4.5  取当前光标位置

8.4.6  处理回车和换行字符

8.4.7  显示可打印字符

8.4.8  滚动屏幕内容

8.4.9  重置光标

8.4.10  切换到另一个代码段中执行

8.4.11  访问另一个数据段

8.5  编译和运行程序并观察结果

本章习题

第9章  中断和动态时钟显示

9.1  外部硬件中断

9.1.1  非屏蔽中断

9.1.2  可屏蔽中断

9.1.3  实模式下的中断向量表

9.1.4  实时时钟、CMOS  RAM和BCD编码

9.1.5  代码清单9-1

9.1.6  初始化8259、RTC和中断向量表

9.1.7  使处理器进入低功耗状态

9.1.8  实时时钟中断的处理过程

9.1.9  代码清单9-1的编译和运行

9.2  内部中断

9.3  软中断

9.3.1  BIOS中断

9.3.2  代码清单9-2

9.3.3  从键盘读字符并显示

9.3.4  代码清单9-2的编译和运行

本章习题

……

第3部分  32位保护模式

附录1  本书用到的x86指令及其页码

附录2  本书用到的重要图表及其页码

推荐帖子 最新更新时间:2022-09-27 15:32

AM335x(TQ335x)学习笔记——u-boot-2014.10移植
最近移植了下u-boot-2014.10到TQ335x,如果基于am335x evm进行移植,需要修改的地方并不多。由于TI的am335x evm开发使用了一个eeprom保存了板载配置信息,用来区分不同板子的型号的,而TQ335x没有这个eeprom,因此,需要修改eeprom相关的部分,使u-boot适应TQ335x开发板。使用source insight查看代码,很容易发现,所有获取板载配置
girlkoo DSP 与 ARM 处理器
传统电路已死
公司计划采购一批收音机,用于非洲市场营销赠品。上周到一家有20多年历史,规模曾经数千人,自有工业园的收音机企业考查,生产线上不再需要熟悉的那些仪器设备,PCB从SMT车间贴好,直接运到组装车间后焊装壳,完全没有一个线圈,也不需要任何调试。 下面这块板子是FM的,工厂说可加AM, SW,仅仅改改软件而已。。。 曾经卖2万元一台的高频信号发生器,目前二手市场成灾,两三百块钱可买一台7成新的,计划买
PowerAnts 综合技术交流
无创想,不奇迹系列主题一:如何让电动汽车更加安全可靠(参与有奖)
关于无创想,不奇迹 从前日子总是很慢,纵使从驿站快马到电报电话,离别依然让无法触及的距离肆虐着我们的思念。而现在,海底光缆推动世界互联,南北半球的思念也不过是一个视频的距离。 你是否已经开始想象,现在,这个已经拥有这些技术的世界会为我们带来怎样冲破想象的未来。你是否已经开始期待,未来,这个世界会为我们带来怎样无法预期的奇迹。 每一个变化可能源于一个看似不可能的脑洞 每一个突发奇
EEWORLD社区 综合技术交流
STM32F769Discovery开发板测评汇总贴
  @donatello1996 【STM32F769Discovery开发板试用】搭建开发环境&驱动液晶屏显示点阵字符&触摸屏驱动 【STM32F769Discovery开发板试用】关于DMA2D刷屏的效率探讨和应用 【STM32F769Discovery开发板试用】SD卡文件系统应用&让人自闭的硬解JPEG解码代码 【STM32F769Discovery开发板试用
okhxyyo 测评中心专版
制作电视天线放大器的方法
本帖最后由 fish001 于 2017-8-27 22:12 编辑   这里介绍一种适合室内电视天线用的放大器,它电路简单,但使用效果不错。  1.电路原理  室内电视的电路如图1所示。它仅用一只超高频三极管组成。  本放大器采用G1、G2双电源供电,其电路特点是:对高频交流而言,本电路是共发射极接地电路,但对直流通道而言则是共基极电路。所以本放大器具有较高的电压增益,但噪声小。又因为电源
fish001 模拟与混合信号
蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)
本帖最后由 freebsder 于 2019-4-27 14:28 编辑 一、主机控制接口协议  HCI蓝牙主机-主机控模型 蓝牙软件协议栈堆的数据传输过程: 1、蓝牙控制器接口数据分组:指令分组、事件分组、数据分组(1)、指令分组 如:Accpet Connection RequestOpcode为:0x0409参数长度为: 07 参数中蓝牙地址为:00:0d:fd:5f:16:9
freebsder RF/无线

评论

登录/注册

意见反馈

求资源

回顶部
查找数据手册?

EEWorld Datasheet 技术支持

热门活动

相关视频

可能感兴趣器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
×