汇编语言(第三版) 笔记01

第2章 寄存器

  1. CPU构成:
    1. 运算器:信息处理
    2. 寄存器:信息存储
    3. 控制器:控制器件工作
    4. 内部总线:连接器件,进行数据传送
  2. 8086的14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW
  3. 通用寄存器(16位):AX、BX、CX、DX,每个高8位和低8位又可构成两个寄存器(AX->AH、AL)
  4. 8086可处理2种储存的数据:
    1. 字节:byte
    2. 字:word
  5. 几条简单汇编
    1. mov ax,18 -> AX = 18
    2. mov ah,78 -> AH = 78
    3. add ax,8 -> AX = AX + 8
    4. mov ax,bx -> AX = BX
    5. add ax,bx -> AX = AX + BX
  6. P.S.不相关的寄存器不可使用,在使用AL的时候产生进位也不会放入AH中去
  7. P.S.数据传送或运算时,指令的两个操作对象的位数应该一致(mov ax,bl不合法)
  8. 物理地址:内存单元->一维线性->唯一地址->物理地址
  9. 16位->藐视CPU特性:
    1. 运算器一次最多处理16位的数据
    2. 寄存器的最大宽度16位
    3. 寄存器和运算器之间的通路16位
  10. 16位8086地址总线20->寻址能力1MB ->采用两个16位地址合成的方法实现
    1. CPU中部件提供2个16位地址:段地址、偏移地址 -> 送入地址加法器 -> 合成一个20位物理地址 -> 通过内部总线送给输入输出控制电路 -> 送入地址总线 -> 送到存储器
    2. 物理地址 = 段地址 * 16 + 偏移地址
  11. P.S.
    1. 段的划分是CPU的内存管理,并没有固定的划分 -> CPU可以通过不同的段地址和偏移地址形成同一物理地址
    2. 16位的的寻址能力是64KB -> 段的最大长度为64KB
    3. 描述 -> 段地址:偏移地址
  12. 段寄存器:CS、DS、SS、ES
  13. CS和IP
    1. CS:代码段寄存器、IP:指令指针寄存器
    2. CS * 16 + IP -> 读指令并执行
    3. 读取一条指令后,IP自动增加
  14. CPU工作过程:
    1. 从CS:IP指向内存单元读取指令->指令进入指令缓冲器
    2. IP=IP+所读指令长度 -> 指向下一条指令
    3. 执行指令,转回第一步
  15. CS、IP无法通过mov指令修改,可以使用jmp 段地址:偏移地址

 

第3章 寄存器(内存访问)

  1. DS:通常放数据的段地址
  2. mov ax,[0],后面[0]是偏移地址,段地址在DS中
  3. P.S.8086不支持将数据直接送入段寄存器,mov ds,1000H是非法的(可用通用寄存器中转)
  4. 用mov访问内存单元,段地址默认在DS中
  5. 栈:FILO(先进后出)
  6. 栈机制:
    1. 入栈出栈以字位单位
    2. 任何时刻,SS:SP指向栈顶元素
    3. 栈顶超出栈空间,会继续覆盖
    4. 8086不保证我们对栈的操作不越界
    5. push、pop的实质就是一种内存传送指令(内存和寄存器之间)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值