汇编指令 jmp——》jump
jmp是转移指令,可以修改CS,IP这两个寄存器 决定CPU从哪里读取指令
jmp 2000:0
jmp 寄存器
若想同时修改CS、IP的值可以用形如“jmp 段地址:偏移地址”的指令完成,功能:用指令中给出的段地址修改CS,偏移地址修改IP如:
jmp 2AE3:3,执行后:CS=2AE3H, IP=0003H, CPU将从2AE33H处读取指令。
只想修改IP “jmp 某一合法寄存器” 的指令完成,功能为:用寄存器的值修改IP,如:
jmp ax,执行指令前:ax=1000H CS=2000H IP=0003H
执行指令后:ax=1000H CS=2000H IP=1000H jmp ax含义上好似: mov IP, ax

指令的执行过程:
1、CPU从CS:IP所指向的内存单元读取指令,将读取的指令存放到指令缓存器中
2、IP=IP+所读指令长度,从而指向下一条指令
3、执行指令缓冲器中的内容,回到步骤1
题目:
假设CS=2000H, IP=0000H 写出下列指令的执行过程
-a 2000:0 CS=2000H IP=0
mov ax,6622H CS=2000H IP=0+3=3
jmp 1000:3 CS=2000H IP=3+5=8
mov cx,ax
a 1000:0 CS=1000H IP=3
mov ax,0123H
mov ax,0 CS=1000H IP=3+3=6
mov bx,ax CS=1000H IP=6+2=8
jmp bx CS=1000H IP=8+2=10
mov cx,0
检测点 2.3
下面三条指令执行后,CPU修改几次IP?4 都是在什么时候?最后IP中的值是多少?0
mov ax,bx ----》存放到指令缓冲器中---》1 ——》执行 ax=bx
sub ax,ax ----》存放到指令缓冲器中——》1 ——》执行 ax=0 sub=subtract减去
jmp ax ----》存放到指令缓冲器中——》1——》执行 1 IP=0
指令的执行过程:
1、CPU从CS:IP所指向的内存单元读取指令,将读取的指令存放到指令缓存器中
2、IP=IP+所读指令长度,从而指向下一条指令
3、执行指令缓冲器中的内容,回到步骤1
本文详细介绍了汇编语言中的 jmp 指令,包括如何修改 CS 和 IP 寄存器来改变指令执行路径。通过实例展示了 jmp 指令在不同情况下的使用,如 jmp2000:0、jmp 寄存器以及 jmp bx 的执行过程,并分析了在特定指令序列执行后 CPU 修改 IP 的次数及其最终值。
1067

被折叠的 条评论
为什么被折叠?



