1章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模拟8086,专门用来练习实模式汇编 . 结合了一个先进的原始编辑器、编译器、反编译器、具有除错功能 的软件模拟工具(虚拟 PC)。在模拟器中一步一步的编译程序码并执行。 可以在程序执行当中查看寄存器、存储器等的内容
3.masm6.x
开发DOS下的应用程序
4.masm32
可以开发WINDOWS下的应用程序
返回本章首页
第1章 基础知识
1.4
程序可见寄存器组
80386 (含80386)以上型号的CPU能够处理32位数据,
其寄存器长度是32位的,但为了与早期的8086等16位机 CPU保持良好的兼容性,80386以上型号的CPU中程序 可见寄存器组包括多个8位、16位和32位寄存器,如图 1.3所示。
第1章 基础知识
第1章 基础知识
地址总线专门用来传送地址信息,它是单向的,地 址总线的位数决定了CPU可以直接寻址的内存范围。如 CPU的地址总线的宽度为N,则这样的CPU最多可以寻 找2的N次方个内存单元。 控制总线用来传输控制信号,其中包括CPU送往存 储器和输入输出接口电路的控制信号,如读信号、写信 号和中断响应信号等,和包括其他部件送到CPU的信号, 如时钟信号、中断请求信号和准备就绪信号等。
4.Intel结构软件开发手册
http://www.intel.com/design/pentium4/manuals/i ndex_new.htm
第1章 基础知识
学习网站
1.北京理工大学精品课网站 http://eol.bit.edu.cn/jpkc/2005/hb/index.htm 2.武汉大学精品课网站 http://jpkc.whu.edu.cn/jpkcsite/hbyy/index_new.asp 3.教育部微软精品课程建设项目 http://www2.zzu.edu.cn/qwfw/hbyycai/courses/index.asp 4.80X86汇编小站 http://www2.jxust.cn/main/yzkc/hbyysj/hbyysj.htm 5.汇编网 http://www.asmedu.net/
第1章 基础知识
汇编工具
1.Masm for Windows 集成实验环境
具有错误信息自动定位、关键字实时帮助,动画教程演示汇编指令的 执行过程、语法着色、无限次撤消与恢复、WORD式的查找、替换、定 位、支持中文、长文件名、软件可以安装在任意文件夹等功能。
2. emulator 8086 masm
第1章 基础知识
控制寄存器 控制寄存器包括指令指针寄存器和标志寄存器。在程 序中不能直接引用控制寄存器名。 ⑴ IP、EIP IP、EIP叫做指令指针寄存器,它总是与CS段寄存器配 合指出下一条要执行指令的地址,其中存放偏移量部分。 在实模式方式下使用IP,在80386以上的保护模式下使用 EIP。 ⑵ 标志寄存器(FLAGS) 标志寄存器也被称为状态寄存器,由运算结果特征标 志和控制标志组成。8086~80286为16位,80386以上为32 位。如图1.4所示,可以看出它们完全向下兼容。空白位为 将来保留,暂未定义。 3.
3.高级语言
接近自然语言,易学易用,不依赖于具体计算机
编译方式/解释方式
第1章 基础知识
汇编程序
连接程序
汇编源程序
汇编
目标程序
连接
执行程序
图1.2 汇编程序与目标程序、可执行程序之间的关系
第1章 基础知识
1.3.2 汇编语言的特点 汇编语言使用助记符和符号地址,所 以它要比机器语言易于掌握,与高级语言 相比较,汇编语言有以下特点: ⑴ 汇编语言与机器关系密切 ⑵ 汇编语言程序效率高 ⑶ 特殊的使用场合
第1章 基础知识
芯片图
第1章 基础知识
不同时期Intel公司制造的几种主要型号的微处理器, 这些微处理器都是曾经或正在广为流行的。
1.80X86系列微处理器 (1) 8088/8086微处理器 (2) 80286-80486微处理器 (3) Pentium (奔腾) (4) Celeron(赛扬) (5) Itanium(安腾)
位 EAX EBX ECX EDX ESP EBP ESI EDI EIP FLAGS
31
16 15
87
0
(AH)AX (AL) (BH) BX (BL) 数据寄存器 (CH) CX (CL) (DH) DX (DL) SP BP SI DI IP FLAGS CS SS DS ES FS GS 堆栈指针 指针寄存器 基址指针 源变址 变址寄存器 目的变址 指令指针 控制寄存器 标志 代码段寄存器 堆栈段寄存器 数据段寄存器 附加段寄存器 段寄存器 通 用 寄 存 器
图1.4 标志寄存器
第1章 基础知识
① 运算结果特征标志: 用于记录程序中运行结果的特 征,8086~Pentium的标志寄存器均含有这6位标志。 CF (Carry Flag): 进位标志,记录运算结果的最高位向前 产生的进位或借位。若有进位或借位则置CF=1,否则清 O。可用于检测无符号数二进制加减法运算时是否发生溢 出(溢出时CF=1)。 PF (Parity Flag):奇偶标志,记录运算结果中含1的 个数。若个数为偶数则 置PF=1,否则清O。可用于检测 数据传送过程中是否发生错误。 AF (Auxiliary carry Flag): 辅助进位标志,记录运算 结果最低4位(低半字节)向前产生的进位或借位。若有进 位或借位则置AF=1,否则清O。只有在执行十进制运算 指令时才关心此位。
第1章 基础知识
为什么要学习汇编语言
理解软件+感知硬件 实际应用:程序优化,软件破解,硬件驱动,病毒分析, 开发系统工具
如何学习汇编语言
培养兴趣
多动手实践 学会用debug工具跟踪调试 参考相关书籍和网站
第1章 基础知识
参考书籍
1.温冬蝉,沈美明:《IBM PC 汇编语言程序设计教程》, 清华大学出版社 2.罗云彬:《Windows环境下32位汇编语言程序设计》, 电子工业出版社 3.【美】Kip R.Irvine 著,温玉杰 等译:《Intel 汇编语 言程序设计》(第四版),电子工业出版社
第1章 基础知识
代码段寄存器CS指定当前代码段,代码段中存放当 前正在运行的程序段。堆栈段寄存器SS指定当前堆栈段, 堆栈段是在内存开辟的一块特殊区域,其中的数据访问按 照后进先出(LIFO)的原则进行,允许插入和删除的一端叫 做栈顶。IBM PC机中SP(或ESP)指向栈顶,SS指向堆栈 段基地址。数据段寄存器DS指定当前运行程序所使用的 数据段。附加数据段寄存器ES指定当前运行程序所使用的 附加数据段。段寄存器FS和GS只对80386以上机器有效, 它们没有对应的中文名称,用于指定当前运行程序的另外 两个存放数据的存储段。虽然DS、ES、FS、GS(甚至于 CS、SS)所指定的段中都可以存放数据,但DS是主数据段 寄存器,在默认情况下使用DS所指向段的数据。若要引 用其它段中的数据,需要显式地说明。
返回本章首页
第1章 基础知识
2.CPU的主要性能指标


机器字长
速度

主频
第1章 基础知识
1. 3
计算机语言及汇编语言特点
1.3.1计算机语言概述
计算机语言的发展经历了由机器语言、汇编语言到高级语言这 样一个由低级到高级的发展过程。
1.机器语言
难读,难写,难于修改和调试
2.汇编语言
简单易记的符号代替0和1 表示的机器代码
第1章 基础知识
1.通用寄存器 8086~80286CPU各有8个16位通用寄存器AX、BX、 CX、DX、SP、BP、SI、DI。对于4个16位数据寄存器 AX、BX、CX、DX,其每个又可以作为2个独立的8位寄 存器使用,它们被分别命名为AH、AL、BH、BL、CH、 CL、DH、DL。80386以上型号的CPU各有8个32位通用 寄存器,它们是相应16位寄存器的扩展,被分别命名为 EAX、EBX、ECX、EDX、ESP、EBP、 ESI、EDI。在 程序中每个8位、16位、32位寄存器都可以独立使用。 SP、ESP 叫做堆栈指针寄存器,其中存放当前堆栈段栈顶 的偏移量,它们总是与SS堆栈段寄存器配合存取堆栈中的 数据。在实模式方式下使用SP,在80386以上的保护模式 下使用ESP。
第1章 基础知识
除SP、ESP堆栈指针不能随意修改、需要慎用外,其 他通用寄存器都可以直接在指令中使用,用以存放操作数, 这是它们的通用之处。在后边讨论指令系统时,可以看到 某些通用寄存器在具体的指令中还有其它用途,例如EAX、 AX、AL(通常被分别称为32位、16位、8位累加器),它们 在乘除法、十进制运算、输入输出指令中有专门用途。另 外有些通用寄存器也可以存放地址用以间接寻址内存单元, 例如在实模式中BX、BP、SI、DI可以作为间接寻址的寄 存器,用以寻址64KB以内的内存单元。在保护模式中 EAX、EBX、ECX、EDX、ESP、EBP、ESI、EDI可以 作为间接寻址的寄存器,用以寻址4GB以内的内存单元,详 细内容在寻址方式一节讨论。
第1章 基础知识
特别要提到的是微型计算机的总线结构,它是一个独 特的结构。有了总线结构以后,系统中各功能部件之间的 相互关系变为各个部件面向总线的单一关系。一个部件只 要符合总线标准,就可以连接到采用这种总线标准的系统 中,使系统功能得到扩展。 数据总线用来在CPU与内存或其他器件之间进行数据 传送用的。它是双向的,数据总线的宽度决定了CPU和外 界的数据传送速度, 8根数据总线一次可传送一个8位二进制 数据(即一个字节),16根数据总线一次可传送2个字节。在 微型机中,数据的含义是广义的,数据总线上传送的不一 定是真正的数据,而可能是指令代码、状态量或控制量。
第1章 基础知识
2.段寄存器 在IBM PC机中存储器采用分段管理的方法,因此一 个物理地址需要用段基地址和偏移量表示。一个程序可以 由多个段组成,但对于8086~80286,由于只有4个段寄存 器,所以在某一时刻正在运行的程序只可以访问4个当前 段,而对于80386及其以上的机器,由于有6个段寄存器, 则可以访问6个当前段。在实模式下段寄存器存放当前正 在运行程序的段基地址的高16位,在保护模式下存放当前 正在运行程序的段选择子,段选择子用以选择描述符表中 的一个描述符,描述符描述段的基地址、长度和访问权限 等,显然在保护模式下段寄存器仍然是选择一个内存段, 只是不像实模式那样直接存放段基址罢了。
第1章 基础知识
表1.1 Intel80X86系列微处理器总线宽度
CPU 8086 8088 80286 80386SX 80386DX 80486 Pentium Pentium Ⅱ Pentium Ⅲ Pentium Ⅳ Itanium(安腾) 外部数据总线宽 内部数据总线宽 度(位) 度(位) 16 8 16 16 32 32 64 64 64 64 64 16 16 16 32 32 32 32 32 32 32 64 地址总线宽度 (位) 20 20 24 24 32 32 36 36 36 36 44 寻址空间(字 节) 1M 1M 16M 16M 4G 4G 64G 64G 64G 64G 16T
第1章 基础知识
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9
8
7
6
5 AF AF AF AF AF
4
3 PF PF PF PF PF
2
1 CF CF CF CF CF 8086/8088 80286 386/486DX 80486SX 80586
第1章 基础知识
第1章 基础知识
1.1 微型计算机概述
1.2
1.3 1.4 1.5 1.6
Intel公司微处理器简介
计算机语言及汇编语言特点 程序可见寄存器组 存储器 外部设备
第1章 基础知识
1.1
微型计算机概述
地址总线
微ቤተ መጻሕፍቲ ባይዱ理器 CPU
存储器
输入输出 接口电路
外围 设备
数 据 总 线



线
图1.1微型计算机基本结构
OF DF IF TF SF ZF NT IOPL OF DF IF TF SF ZF VM RF AC VM RF ID VIPVIFAC VM RF NT IOPL OF DF IF TF SF ZF NT IOPL OF DF IF TF SF ZF NT IOPL OF DF IF TF SF ZF
返回本章首页
第1章 基础知识
1.2
Intel公司微处理器简介
1971年,Intel设计成功了第一片4位微处理器 Intel4004;随之又设计生产了8位微处理器8008; 1973年推出了8080; 1974年基于8080的个人计算机(PC)问世, Microsoft公司的创始人Bill Gates为这种PC开发了BASIC 语言解释程序; 1977年Intel推出了8085。 自此之后,又陆续推出了8086、80386、Pentium等 80X86系列微处理器。
相关文档
最新文档