今天我们来看看第二章。
第二章讲的是寄存器,这里蕴含的知识点还是比较多的。
我们来看一看。
通用寄存器——AX,BX,CX,DX。
对于8086CPU,每个寄存器都是16位的。
为了兼容上一代8位的CPU,8086CPU的寄存器分为高位和低位,如AX分为AH,AL。
字节:Byte(8bit)
字:word(16bit)
下面是几条汇编指令:
8086CPU是16位的,其含义有:
- 运算器一次最多可以处理16位的数据
- 寄存器的最大宽度位16位
- 寄存器和运算器之间的通路为16位
8086CPU给出物理地址的方式是:
物理地址=段地址*16+偏移地址
值得提示的是,虽然有段地址,但是内存并没有分段,只是CPU把它们分段了而已。
8086CPU有4个段寄存器——CS、DS、SS、ES
CS(code segment)用于存储指令(代码),CPU会把CS:IP指向的内容视为指令去执行。
这里CS相当于段地址,而IP相当于偏移地址。
我们可以用以下命令去修改CS:IP的指向:
我们也可以用jmp 寄存器,用来只改变IP的值
还有一个概念,就是代码段,指的就是存放代码的一段地址,当然了,这个只是我们的想象,实际上CPU并不会区分这个。
debug中的一些命令(在DOS中输入debug即可进入debug模式):
第二章的精华内容好像就是那么多了。