爱笑的冰柠檬汁 爱笑的冰柠檬汁
关注数: 33 粉丝数: 126 发帖数: 1,174 关注贴吧数: 25
我的汇编笔记 汇编语言是各种CPU提供的机器指令的助记符的集合 重点:机器工作的基本原理 培养底层编程的意识和思想 计算机将机器指令转变为一列高低电平以使计算机的电子器件受到驱动进行运算。 一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 存储器基本的存储单元为字节(8个二进制位) 1GB=2^10MB 1MB=2^10kb 1kb=2^10byte CPU要想对数据进行读写,必须和外部器件进行信息的交互(地址信息、控制信息、数据信息) 早期计算机概念:可以执行机器指令,进行运算的机器 现代计算机概念:由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统 存储器从读写属性上看分两类:随机存储器【RAM】可读可写,带电存储 只读存储器【ROM】只能读取 存储器相同点:都和CPU的总线相连 CPU对它们进行读或写的时候都能通过控制线发出内存读写命令 一个典型的CPU由运算器、控制器、寄存器等器件构成 运算器 进行信息处理 控制器 控制各种器件进行工作 寄存器 进行信息存储【是CPU中程序员可以用指令读写的部件】 在写一条汇编指令或一个寄存器的名称时不区分大小写 在进行数据传送或运算时,要注意指令的两个操作对象的位数一致 物理地址:内存单元在存储空间中所在的唯一地址 CPU在访问内存时,用一个基础地址【段地址*16】和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址 CPU可以用不同的段地址和偏移地址形成同一个物理地址 段寄存器:CS DS ES SS 任何时刻,CPU将CS:IP指向的内容当做指令执行 CPU工作原理 1、从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器 2、IP=IP+所读取指令的长度,从而指向下一条指令 3、执行指令。转到步骤1,重复这个过程 CPU大部分寄存器的值都可以用mov指令改变 能够改变CS、IP的内容的指令为转移指令 代码段 用来存放代码的一组地址连续的内存单元 jmp 某一合法寄存器 用寄存器中的值修改IP sub ax bx==>ax=ax-bx 内存中的数据和代码没有任何区别,关键在于如何解释 字单元:存放一个字型数据【16位】的内存单元,由两个地址连续的内存单元组成。高地址内存单元中存放字型数据的高位字节,低地址内存单元中存放字型数据的低位字节 指令执行时8086CPU自动取ds中的数据为内存单元的段地址 8086不支持将数据直接送入段寄存器的操作 mov add sub是具有两个操作对象的指令,jmp是具有一个操作对象的指令 栈是一种具有特殊的访问方式的存储空间 8086CPU的入栈和出栈操作都是以字为单位进行的 SS:SP提示栈顶;改变SP后写内存的入栈指令;读内存后改变SP的出栈指令 pop、push实质上就是一种内存传送指令,可以在寄存器和内存之间传送数据,与mov指令不同的是,push和pop指令访问的内存单元的地址不是在指令中给出的,而是由SS:SP给出的 push指令的格式可以是如下形式: push 寄存器 push 段寄存器 push 内存单元 Debug的T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行
1 下一页