记一记汇编小知识
寄存器
所有寄存器都是16位
首先介绍通用寄存器AX
它能够保留2^16-1的数据,用十六进制表示就是FFFFH
eg:
在AX中存储18D
—12H
—10010B 在低位10010高位全是0,就像这样

- 有一个问题: 8086上一代CPU的寄存器都是八位的,怎么保证程序的兼容性
通用寄存器均可以分为两个独立的8位寄存器使用 例如:AX可以分为AH和AL,AX,BX CX,DX都是如此
字
8086是16位CPU
就是说8086的字长是16位
一个字可以存在一个16位寄存器中

mov和add指令

add al,bl 意思是把bx的低八位和ax的低八位相加结果给al即ax的低八位
同理ah为ax的高八位

最后一句需要注意
al位置的值发生溢出是,不会向ax进位,直接丢弃
确定物理地址的方法

内存的分段表示法
!!! 内存并没有分段,段的划分来自CPU
偏移地址16位,所以只能寻址64k,范围为0~ffffH

段地址很重要,用专门的寄存器存放段地址
有四个段寄存器
CS–代码段 DS–数据段
SS–堆栈段 ES–附加段寄存器
DEBUG
debug是一个调试程序
能查看CPU中各种寄存器的内容内存的情况

jmp 1000:0 跳转到此位置
jmp ax 把ip 跳到ax的位置
cpu从内存单元中要读取数据

DS与数据段




div

jmp






本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 ᕙ(• ॒ ູ•)ᕘ欢迎光临ᕙ(`▿´)ᕗ!




