title: 汇编语言笔记
date: 2018-06-3 20:17:12
updated: 文件更新日期
tags: [SYSTEM,汇编语言,CSAPP,计算机基础]
categories: 底层技术
汇编语言简介
汇编语言的组成
- 汇编指令(机器码的助记符)
- 伪指令(由编译器执行,计算机并不认识)
- 其他符号
- 汇编指令是机器指令的助记符,同机器指令一一对应。
- 每一种CPU都有自己的汇编指令集。
- CPU可以直接使用的信息在存储器中存放。
- 在存储器中指令和数据没有任何区别,都是二进制信息。
- 存储单元从零开始顺序编号。
- 一个存储单元可以存储8个bit(1Byte),即8位二级制数。
- CPU芯片的管脚都和总线相连,一共三种总线
- 地址总线的宽度决定了CPU的殉职能力。
- 数据总线的宽度决定了CPU与其他期间进行数据传输的传送量。
- 控制总线决定了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指向的内容当作指令执行。
工作过程:
- 从CS:IP指向内存单元读取指令,读取的指令指向指令缓冲器;
- IP指向吓一跳指令;
- 执行指令。(转到步骤1,重复这个过程)