zoukankan      html  css  js  c++  java
  • 《汇编语言(第二章)》课后小结

    通过本章的学习:了解通用寄存器,掌握字数据在寄存器中的存储,理解段的概念,了解段寄存器,掌握汇编指令mov, add和jmp的基本用法。
    一个典型的CPU由运算器、控制器、寄存器等器件组成。内部总线实现CPU内部各个器件之间的联系。外部总线实现CPU和主板上其它器件的联系。本课程内容介绍基于8086CPU,
    8086是Intel系列中16位微处理器,地址总线20位。
    CPU字长是指CPU在单位时间内能一次处理的二进制位数。该指标反映出CPU内部运算处理的速度。而位宽是指CPU通过外部数据总线与内存之间一次能够传送的数据位。
    关于ISA,一个处理器支持的指令和指令的字节级编码称为它的ISA。不同处理器“家族”系列,有不同的ISA。同一系列里也有不同类型的处理器。虽然每个厂商制造的处理器性能和复杂性不断提高,但是不同的类型在ISA级别上都保持着兼容。
    指令使用注意事项,(1) 在mov和add指令中,两个操作对象的位数应一致。(2)运算时超出寄存器表示的位数的情形,例如:设(AX) = 8226H, (BX) = 8226H,执行ADD AX, BX后, (AX) =044CH,本来8226H+8226H=1044CH,舍弃高位的1,最后取044CH。
    8086结构表示物理地址的障碍,8086内部的寄存器都是16位的,而外部地址总线宽度为20位,16位的寄存器无法直接表示20位的物理地址,所以用两个16位地址合成一个20位的物理地址。8086在内部用两个16位地址,通过计算合成得到一个20位的物理地址。计算合成由CPU内部的地址加法器实现。关于物理地址的相关说明:(1) 8086中,通过段地址: 偏移地址来间接描述内存单元的物理地址。CPU根据如下公式计算得到物理地址:物理地址 = 段地址 × 16 + 偏移地址。其中:①「段地址: 偏移地址」也称「逻辑地址」②「段地址 × 16 」构成段的起始物理地址,故根据需要划分段使用时,段的起始物理地址必须是16的倍数。(2) 段的划分是灵活的,一个物理地址可以用不同的「段地址: 偏移地址」表示。只要满足段的起始物理地址是16的倍数。(3) 在写法上,地址通常用十六进制表示。表示十六进制的H在「段地址: 偏移地址」中可省略不写。例题,给定段地址0001H,那么只通过偏移地址来寻址,CPU的寻址范围是00010H1000FH。解:0001H*10H+(0FFFFH)=00010H~1000FH
    CS是代码段段寄存器,用于存放代码段的「段地址」。IP是指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址。CS:IP对应的物理地址存放的是CPU将要读取的指令。计算机工作过程第1步: CPU基于CS:IP,计算出物理地址,然后到相应的内存单元读取指令,送到指令缓冲区。第2步: CPU自动修改IP的值,IP = IP + 所读取指令的长度,从而为下一条指令读取做准备;第3步: 执行指令。转第1步,重复此过程。而指令jump,是可以修改CS和IP的指令,它能同时修改CS、IP的内容,也可以只修改IP的内容,用指令中寄存器的值修改IP。

  • 相关阅读:
    Struts1、Struts2的线程安全问题
    java基础系列——线程池
    Memcached基础
    Git基本应用
    Angular UI框架 Ng-alain @delon的脚手架的生成开发模板
    .NET CORE 框架ABP的代码生成器(ABP Code Power Tools )使用说明文档
    角落的开发工具集之Vs(Visual Studio)2017插件推荐
    【52ABP实战教程】0.3-- 从github推送代码回vsts实现双向同步
    【52ABP实战教程】0.1-- Devops如何用VSTS持续集成到Github仓库!
    【52ABP实战教程】0.2-- VSTS中的账号迁移到东亚
  • 原文地址:https://www.cnblogs.com/nilicon/p/9756796.html
Copyright © 2011-2022 走看看