• 汇编语言----第二章知识梳理与总结


     第二章 寄存器

      上节说到CPU通过系统总线与内部各个器件的联系,这一节开始说说其中一个重要的器件---寄存器,程序员在编程时,可以通过改写寄存器的内容达到对CPU的控制;在8086CPU的

    16位寄存器中,AX,BX,CX,DX都是通用寄存器,可以存放一般性的数据。为了兼容上代的CPU这些寄存器可以分成两个八位使用,低八位,和高八位,一AX为例就是分为AL,AH;

      出于兼容性的问题,8086CPU可以处理两种尺寸的数据:

          字节:byte,由8个bit位组成

          子:word,由两个字节组成,这两个字节分别被称为高位字节和低位字节

      

      汇编指令:mov ax,18 将18送入ax寄存器  add ax 8   将8与ax内容相加

      举例:

      

      再寄存器中的改变情况:

      

     

      值得注意的是:在进行相加操作的时候要注意内存的溢出,导致出错

      每一个内存单元都有唯一的地址,成为物理地址

      

      16位结构的CPU{

        1.运算器一次最多可以处理16位的数据;

        2.寄存器的最大宽度为16位;

        3.寄存器和运算器之间的通路为16位

      }  

      8086CPU给出物理地址的方法:用段地址和偏移地址  计算公式:段地址 X 16 + 偏移地址

      如图:

      

      

      本质含义:CPU在访问内存时,用一个基础地址和一个相对于基础地质的偏移地址相加,给出内存单元的物理地址

      

      段的概念:每一个段有一个段地址,但是内存并不是被划分成一段一段的,而是由于CPU的划分

      由于16位地址的寻址能力是64KB,所以一个段的最大长度为64KB

      

      段寄存器:有CS  DS  SS  ES

      CS和IP:代码段寄存器和指令指针寄存器

      CS和IP的值是可以修改的:Ip每次是根据指令的空间大小进行更新,同时可以用jmp命令

  • 相关阅读:
    链表逆序输出 ---九度1511
    java 通过ssh连接linux服务器的测试代码
    C/C++时间函数总结
    C,C++,windows api, linux api 操作文件总结
    基于大数据计算思想的分布式数据库
    手机定位的方式
    矩阵取数问题
    回文字符串
    linux shell重定向总结
    apache flink 入门
  • 原文地址:https://www.cnblogs.com/acmblog/p/9733552.html
Copyright © 2020-2023  润新知