zoukankan      html  css  js  c++  java
  • 汇编语言第二章

    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。

  • 相关阅读:
    网站访问量和服务器带宽的选择
    PHP实现四种基本排序算法
    常用的PHP排序算法以及应用场景
    常见的mysql数据库sql语句的编写和运行结果
    MyBatis拦截器:给参数对象属性赋值
    《自律让你自由》摘要
    Java JDK1.5、1.6、1.7新特性整理(转)
    人人都能做产品经理吗?
    Windows下查询进程、端口
    一语收录(2016-09-18)
  • 原文地址:https://www.cnblogs.com/lopezj/p/9867213.html
Copyright © 2011-2022 走看看