第一篇文章!
汇编语言(一)
CPU的组成
- 运算器进行信息处理;
- 寄存器进行信息存储;
- 控制器协调各种器件进行工作;
- 内部总线实现CPU内各个器件之间的联系。
[{"url":"1.png","alt":"img","title":""}]
8086上一代CPU的寄存器是八位的,那如何保证兼容性呢?
把16位寄存器分成AH和AL两个独立的8位寄存器使用;
同样,32位或64位的寄存器也可以分,从而实现兼容性。
比如AX中现在存储0101010110101010,可以分为AH01010101和AL10101010来存储
汇编指令
汇编指令 控制CPU完成的操作
- mov ax,18 将18送入AX
- mov ah,78 将78送入AH
- add ax,8 将AX中的值和8相加并把值存入AX
- mov ax,bx 将BX中的值赋值给AX
- add ax,bx 将AX和BX中的内容相加并把值存于AX
注意:汇编指令不区分大小写,MOV也行
[{"url":"2.png","alt":"img","title":""}]
在进行低八位运算的时候,比如最后一行85+93,结果等于158,但发生了溢出,只能显示58,1舍弃而不是进位到高位。
物理地址
每一个内存单元在存储空间中都有唯一的位置。8086CPU有20位地址总线,可传送20位地址,寻址能力为1MB(2的20次方)。8086是16位的CPU,16位地址表示的是地址总线的宽度,即CPU可以直接访问的地址范围。如果地址总线是16位,那么可表示的地址数量为2的十六次方=65536个字节(即 64KB)。这意味着 CPU 最多只能寻址 64KB 的内存空间。
使用地址加法器将两个16位地址合成一个20位的物理地址。一个叫做段地址,另一个叫做偏移地址。
段地址✖16 + 偏移地址 = 物理地址,也称之为左移四位(二进制中),在十六进制里左移1位即可。
最后得到的20位物理地址被地址总线传送到存储器里。
描述存储单元的方法(物理地址为21F60H,段地址为2000H,则偏移地址为1F60H)
- 数据存放在内存2000:1F60单元中
- 数据存放在内存的2000段中的1F60H中
[{"url":"3.png","alt":"img","title":""}]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Explainfuture's Blog!