码迷,mamicode.com
首页 > 其他好文 > 详细

汇编新兵(一)

时间:2016-08-02 14:59:27      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

Hello Vinci :)


寄存器:
  简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。AX、BX是其中的寄存器的代号。

组成:
  1)汇编指令(机器码的助记符)
  2)伪指令(由编译器执行)
  3)其他符号(由编译器执行)


  存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号。
  例如一个存储器有128个存储单元,编号就还0~127

  CPU要想进行数据的读写,必须和外部器件(标准说法是芯片),进行三类信息的交互:
    存储单元的地址(地址信息)
    器件的选择,读或写命令(控制信息)
    读或写的数据(数据信息)

    Q:CPU是通过什么将地址、数据和控制信息传到存储芯片中的呢?
      电信号


  在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。
    物理上:一根根导线的集合


    逻辑上划分为:
      地址总线
      控制总线
      数据总线

     技术分享


  指令和数据:
    指令和数据是应用上的概念

    在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。那是如何辨别是指令还是数据呢?
      (逻辑上可是划分了三条总线的...)

  小结:
    汇编指令是机器指令的助记符,同机器指令一一对应。
    每一种CPU都有自己的汇编指令集。
    CPU可以直接使用的信息在存储器中存放
    在存储器中指令和数据没有任何区别,都是二进制信息
    存储单元从零开始顺序编号
    一个存储单元可以存储8个bit,即8位二进制数

  内存地址空间:
    一个CPU的地址线宽度为10,那么可以寻址2**10个内存单元,即1024个内存单元(1024bit = 1KB),这1024个可寻到的内存单元就构成这个CPU的内存地址空间。(现在我们使用的32位CPU,就是地址线宽度为32,所以最大支持的内存在2**32bit = 4GB)

  主板:每一台PC机中,都有一个主板,主板上有核心器件(CPU、内存之类)和一些主要器件,这些器件通过总线(地址、控制、数据)相连。
    计算机系统中,所有可用程序控制其工作的设备,必须受到CPU的控制
    CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡

  存储器芯片:
    从读写属性上看分为两类:
      随机存储器(RAM)和只读存储器(ROM)
        RAM断电后数据会丢失
        ROM断电后数据会安全

        装有BIOS的ROM
        BIOS:Basic Input/Output System,基本输入输出系统。BIOS是由主板和各类接口卡(如显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应BIOS的ROM。


    从功能和连接上分类:
      随机存储器RAM
      装有BIOS的ROM
      接口卡上的RAM

看图:

技术分享


--------------------------------------------

CPU工作原理:
  一个典型的CPU由计算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。

  区别:
    内部总线实现CPU内部各个器件之间的联系,
    外部总线实现CPU和主板上其他器件的联系。

  寄存器:
    AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW


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

    通用寄存器:
      AX、BX、CX、DX通常用来存放一般性数据,被称为通用寄存器(简易记ABCD)

      8086的上一代8088CPU的寄存器都是8位的;为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。
        例如AX可以分为AH(high)和AL(low)... AL和AH寄存器是可以独立使用的8位寄存器

      技术分享



    几条汇编指令:
      mov ax,18 ===> ax = 18
      add ax,8 ===> ax += 8
      mov ax,bx ===> ax = bx
      add ax,bx ===> ax += bx


    物理地址:
      CPU访问内存单元时要给出内存单元的地址,所有的内存单元构成的存储空间是一个一维的线性空间。被称为物理地址。
      概括的讲:16位结构描述了一个CPU具有以下特征:
        1)运算器一次最多可以处理16位的数据
        2)寄存器的最大宽度为16位
        3)寄存器和运算器之间的通路是16位的


      段的概念:
        错误认识:内存被划分成了一个一个的段,每一个段有一个段地址

        其实:内存并没有分段,段的划分来自于CPU,由于8086CPU用“(段地址)*16 + 偏移地址 = 物理地址” 的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存

      段寄存器:
        段寄存器就是提供段地址的
        8086CPU有四个段寄存器:
          CS、DS、SS、ES

            CS(代码段寄存器)和IP(偏移地址寄存器)是8086CPU中最关键的寄存器,它们知识了CPU当前要读取指令的地址。

汇编新兵(一)

标签:

原文地址:http://www.cnblogs.com/AirStark/p/5729194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!