zoukankan      html  css  js  c++  java
  • 汇编语言笔记


    title: 汇编语言笔记
    date: 2018-06-3 20:17:12
    updated: 文件更新日期
    tags: [SYSTEM,汇编语言,CSAPP,计算机基础]
    categories: 底层技术

    汇编语言简介

    汇编语言的组成

    1. 汇编指令(机器码的助记符)
    2. 伪指令(由编译器执行,计算机并不认识)
    3. 其他符号
    • 汇编指令是机器指令的助记符,同机器指令一一对应。
    • 每一种CPU都有自己的汇编指令集。
    • CPU可以直接使用的信息在存储器中存放。
    • 在存储器中指令和数据没有任何区别,都是二进制信息。
    • 存储单元从零开始顺序编号。
    • 一个存储单元可以存储8个bit(1Byte),即8位二级制数。
    • CPU芯片的管脚都和总线相连,一共三种总线
      1. 地址总线的宽度决定了CPU的殉职能力。
      2. 数据总线的宽度决定了CPU与其他期间进行数据传输的传送量。
      3. 控制总线决定了CPU对系统中其他器件的控制能理。

    内存地址空间

    一个CPU的地址线宽度位10,那么可以殉职1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间。

    各类存储器芯片

    从读写分为:

    随机读写(RAM)和只读存储器(ROM)

    从功能上和连接上分类:

    • 随机存储器RAM
    • 装有BIOS的ROM
    • 接口卡上的ROM

    寄存器

    CPU概述

    一个典型得CPU由运算器/控制器/寄存器等期间组成,这些器件靠内部总线相连。
    区别:

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

    寄存器概述

    8086CPU有14个寄存器,他们的名称为:
    AX/BX/CX/DX/SI/DI/SP/BP/IP/CS/SS/DS/ED/PSW.
    一个16位的寄存器能粗出的最大数据为2^16-1.

    AX,BX,CX,DX处于兼容性是可以把16位寄存器当作两个8位寄存器使用的。
    AX可分为AH,AL。H表示高位(8-15),L表示低位(0-7)。BX,CX,DX同理。

    如果超过16位,寄存器不保留高位。会采取相应措施保留高位进位数。

    段的概念

    内存并没有分段,而是因为CPU使用 段地址×16+偏移地址=物理地址的方式给出内存单元的物理地址,所以可以用分段的方式来管理内存。

    8086给出物理地址的方法


    物理地址=短地址×16+偏移地址
    过程说明:

    CS为段寄存器,IP为偏移寄存器。8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
    工作过程:

    1. 从CS:IP指向内存单元读取指令,读取的指令指向指令缓冲器;
    2. IP指向吓一跳指令;
    3. 执行指令。(转到步骤1,重复这个过程)
  • 相关阅读:
    layui 获取select下拉选项上自定义的属性
    TP中关联模型的使用
    安卓模仿直播中的闪动(放大缩小)的动画
    Android报错Multiple dex files define Lcom/ta/utdid2/c/a/c
    Date.parse()的坑
    Android应用加固的简单实现方案(二)
    Android应用加固的简单实现方案
    Android中ANR的触发机制-BroadcastReceiver篇
    Android中ANR的触发机制-Service篇
    Application中以标准模式启动Activity报错的原因分析
  • 原文地址:https://www.cnblogs.com/didadida/p/10144615.html
Copyright © 2011-2022 走看看