CS和IP
CS为代码段寄存器,IP为指令指针寄存器,它们指示了CPU当前要读取指令的地址
任意时刻,8086CPU都会将CS:IP指向的指令作为下一条需要取出执行的指令
指令的执行过程
指令和数据集
- 在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息
-
CPU在工作的时候把有的信息看做指令,有的信息看做数据,为同样的信息赋予了不同的意义
- CPU根据什么将内存中的信息看做指令?
- CPU将CS:IP指向的内存单元的内容看做指令
- 如果内存中的某段内容曾被CPU执行过,那么它所在的内存单元必然被CS:IP指向过
jmp指令
CPU从何处执行指令是由CS、IP中的内容决定的,我们可以通过改变CS、IP的内容来控制CPU执行目标指令
8086提供了一个mov指令(传送指令),可以用来修改大部分寄存器的值,比如
mov ax,10、mov bx,20、mov cx,30、mov dx,40但是,mov指令不能用于设置CS、IP的值,8086没有提供这样的功能
8086提供了另外的指令来修改CS、IP的值,这些指令统称为转移指令,最简单的是jmp指令
mov ax, 0100h
jmp ax
- 另外,也可以“jmp 直接值”来改变IP的值,比如“jmp 0100H”