1.定义
修改IP或同时修改CS和IP的指令称为转移指令
2.无条件转移指令
jmp x
(1)根据位移
jmp short :-127~127
jmp near ptr:-32768~32767
jmp +偏移量:并没有给出目的地址的地址,而是给出了目的地址相对此时IP的偏移量
(2)地址在指令
jmp far ptr:段间转移
包含目的地的地址,高位地址为段地址,低位地址为偏移地址
(3)地址在寄存器(bx,si,di,bp)
jmp reg:即将IP修改为reg的内容
(4)地址在内存
3.条件转移指令
JCXZ DEST:条件为cx寄存器中的值是否为0,如果为0就对IP进行修改,+偏移量
DEST为destination目的地
4.循环指令
loop:cx--,判断cx是否为0,如果不为0,就对IP进行修改,如果为0,则执行下一条指令
5.子程序
call
ret
子程序
程序首先执行ax=1,cx=3,然后遇到call转移到s处,此时将CS和IP(指向mov,bx,ax)压入栈中,然后执行ax+=ax,再执行loop s,cx-=cx,cx=0?循环2次,loop指令结束,执行ret指令,此时将栈中的CS和IPpop出,指向bx=ax,执行该指令后bx=8
6.中断
(1)内中断
cpu内部提出的中断请求
①除法错误:调用int 0
②单步执行:根据调试标志位TF是否为1来决定是否执行单步中断
③into指令:溢出中断,判断OF标志位是否为1来调用int 4
④int指令: int +中断类型码n 调用n中断
指令中的中断类型码→对应的中断向量即入口地址 (有0~255共256个中断类型码)
中断处理程序:
(2)外中断
cpu外部提出的中断请求,即I/O设备提出的
I/O设备与cpu间的通信通过I/O设备的端口
1.可屏蔽中断:cpu可以不响应的中断,通过设置IF标志位的值,IF=1时响应,IF=0时不响应
2.不可屏蔽中断:cpu必须响应的中断
外中断响应时流程: