修改CS,IP寄存器的指令


匯編指令  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中的值是多少? 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM