zoukankan      html  css  js  c++  java
  • 汇编语言程序设计第二章小结

    一、通用寄存器:AX、BX、CX和DX。(均为16位,可存放2个字节)。都可以分为两个独立的8位寄存器。(eg:AH和AL,其中AL为低8位,AH为高8位。)

    二、字在寄存器中的存储

    1字节(byte)=8bit,1个字=2字节=高位字节+地位字节,分别对应存在高位寄存器和低位寄存器中。

    三、汇编指令

    注意:在写一条汇编指令或一个寄存器名称时不用区分大小写。

    引入:mov和add

    溢出问题:AH和AL是两个不相关到的寄存器,当操作AL中有进位时,AL不会向AH进位。

    (eg: mov ax,00C5H

              add al,93H

    执行前al中的数据为C5H,相加后得到158H,但是al是8位寄存器,只能放两位16进制的数据,所以最高位的1丢失。ax中的数据为:0058H。这里的丢失指的是进位值不能在8位寄存器中保存,但是并不是CPU真的丢弃这个进位值。

    进行数据的传送或运输时,两个操作对象的位数需要相同。

    (eg:错误指令:mov al,20000   8位寄存器最大可以存放的值为255的数据)

    四、物理地址

    所有的内存单元构成的存储空间是一个一维的线性空间,每个内存空间在这个空间中都有的惟一的地址,成为物理地址。

    五、16位结构的CPU

     结构特性:

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

    2、寄存器的最大宽度为16位。

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

    六、8086CPU给出物理地址的方法

    读写内存步骤:

    1、CPU中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址。

    2、段地址和偏移地址通过内部总线送入一个称为地址加法器的部件。

    3、地址加法器将两个16位地址合成为一个20位的物理地址。

    (物理地址=段地址*16+偏移地址)

    4、地址加法器将通过内部总线将20位物理地址送入输入输出控制电路。

    5、输入输出控制电路将20位物理地址送上地址总线。

    6、20位物理地址被地址总线传送到存储器。

    七、“段地址*16+偏移地址=物理地址”的本质含义

    类比“基础地址+偏移地址=物理地址”

    八、段的概念

     段地址*16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB

    同一个物理地址可以被CPU用不同的段地址和偏移地址形成。

    给定段地址的情况下,仅用偏移地址来寻址,最多可以寻64KB个内存单元。

    九、段寄存器

    8086CPU有四个段寄存器:CS、DS、SS和ES。

    十、CS和IP

     CS为代码段寄存器,IP为指令指针寄存器,任意时刻CPU将CS:IP指向的内容当作指令执行。

    工作过程:

    1、从CS:IP指向的内存单位读取指令,读取的指令进入指令缓冲器;

    2、IP=IP+所读取的指令的长度,从而指向下一条指令;

    3、执行指令。转到步骤1,重复改过程。

    CS或IP值变化后,执行控制器执行上一条指令???

    十一、修改CS、IP的指令

    jmp指令:运用形式:jmp 段地址:偏移地址(CS:IP)

                                       jmp 某一合法寄存器    jmp ax,=mov IP ,ax(仅仅修改IP的值)

    十二、引入概念代码段。(略)

    本章主讲了寄存器的功能,以及数据在其中的存放。引入了mov,add和jmp的作用和使用方法、物理地址,段地址和偏移地址的关系和8086CPU工作的本质过程。注意计算的细节,以及代码段中jmp改变CS与IP的值的时间。

  • 相关阅读:
    CentOS7.4安装和配置Zabbix4.0
    CentOS7.4安装jdk1.8.0_201、Tomcat-8.5.38环境
    基于腾讯云CentOS7.4+MySQL5.7+Python3+uWSGI+Nginx的Django项目部署
    Windows Server 2008 R2环境下Apache2.4+Tomcat8配置
    Django2.1.5使用xadmin打造适合国人的后台管理系统
    Django2.1.3 smtp 邮件 553报警
    GitHub的Windows客户端的使用教程
    Ubuntu18.04的网络配置(静态IP和动态IP)
    CentOS6.X、7.X下Jenkins的安装及使用
    CentOS7下搭建Nginx+PHP7的安装配置
  • 原文地址:https://www.cnblogs.com/Yangruzhang/p/9729463.html
Copyright © 2011-2022 走看看