汇编语言第二部分总结

寄存器:

  1. 数据寄存器    ax bx cx dx 其中bx也可以作为地址偏移寄存器
  2. 地址寄存器          段地址寄存器      偏移地址寄存器
  3. 标志位寄存器(组成原理里面说过)

ax bx cx dx 被称为通用寄存器
四个寄存器都可以分割为两个八位寄存器

这样实现的目的:

  便于一直,且CPU最处理单元为8bit,充分利用资源
  翻译时自动补全位数,保证寄存器和数据间的位数一致性。解释器通过检测寄存器的位数来判断数据补全到几位

mov 移动指令
add 运算指令, 计算溢出时会将溢出位存放的一个地方(目前未知)

  寄存器之间相互独立:al溢出不会存放到ah中

段地址寄存器 : 偏移地址寄存器     组合规则
ds          sp        段地址 * 16 + 偏移地址 = 物理地址
es          bp        原因:20位物理地址线 和 16位CPU 处理的不合理设计
ss          si
cs          di
           ip
           bx

CPU 如何区分 指令和数据 :

  8086 CPU 在任意时刻,将CS,IP所指向的内容当作指令

  指令有长度,每一次都会在完成读取存放到指令缓存器中后, cs:ip 会指向cs:ip+指令长度(十六进制)

修改cs,ip:

jmp

call 

call 将 改变的IP保存了起来 执行跳转

那么保存到哪了呢?

保存在内存中

数据存在哪,内存存在哪?

程序员如何操作寄存器访问内存中的数据 和 指令?

存储器访问内存(下一章内容)

思维导图:

  

猜你喜欢

转载自www.cnblogs.com/daker-code/p/12364104.html
今日推荐