汇编语言笔记


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,重复这个过程)
原文地址:https://www.cnblogs.com/zhoujiayong/p/10144615.html