• 汇编语言第二章


    1.通用寄存器

    8086CPU的所有寄存器都是16位的,可以存放两个字节。

    而AX,BX,CX,DX这四个寄存器被称为通用寄存器,并且这些寄存器都可以分为两个独立的八位寄存器来使用。(AH BH CH DH AL BL CL DL)

    2.字在寄存器中的存储

    一个字由两个字节组成,而一个字节由八个bit组成,所以由此可知字节通常放在八位寄存器中,字通常放在十六位寄存器中(这个字就可以分为高位字节和低位字节)。

    3.几条汇编指令

    mov 和add

    例如mov ax,18 :就是将18送入寄存器ax中       mov ax,bx :将bx中的值送到寄存器ax中

           add ax,8 :就是将寄存器ax中的值加上8     add ax,bx :将ax和bx中的值相加,然后存入寄存器ax中

    (在这边不区别大小写)

    此外,在进行数据传输时或运算时,要注意指令的两个对象的位数应当是一致的。

    4.物理地址

    CPU必须是一个内存单元的地址总线通过地址总线送入存储器的。

    但是在此之前,必须在内部先形成物理地址。

    不同的CPU可以有不同的形成物理地址的方式。

    5.16位结构的CPU

    特性:CPU一次性最多处理16位的数据;

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

              对于16位的CPU,能一次性处理.传输.暂时存储16位的地址。

    6.8086CPU给出物理地址的方法

    采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址:

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

    然后这两个地址被送到一个叫地址加法器的部件;

    地址加法器采用物理地址=段地址*16+偏移地址的方法将这两个16位地址合成一个20位的物理地址;

    送到地址总线,最后传送到存储器。

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

    CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址的相加,给出内存单元的物理地址。

    8.段

    段是可以根据需要将地址连续,其实物理地址为16倍数的一组内存单元当作一个段使用。

    9.cs和IP

    cs:代码段段寄存器,用于存放代码段的段地址;

    IP:指令指针寄存器,用于存放CPU将要读取的指令在代码段中的偏移地址

    即:指令的物理地址=CS*16+IP.。

    修改CS,IP的指令:jmp

    形如jmp 段地址:偏移地址

    而jmp ax,在含义上好似:mov IP,ax。

  • 相关阅读:
    react 起手式
    获取元素CSS值之getComputedStyle方法熟悉
    js设计模式
    es6笔记5^_^set、map、iterator
    Flux --> Redux --> Redux React 入门 基础实例使用
    http协议与内容压缩
    C程序中唯一序列号的生成
    动态设置布局LayoutInflater
    构造Scala开发环境并创建ApiDemos演示样例项目
    BZOJ 2525 Poi2011 Dynamite 二分答案+树形贪心
  • 原文地址:https://www.cnblogs.com/lopezj/p/9867213.html
Copyright © 2020-2023  润新知