修改CS、IP的指令
- 理論:CPU執(zhí)行何處的指令,取決于CS:IP
- 應(yīng)用:程序員可以通過改變CS、IP中的內(nèi)容,進(jìn)行控制CPU即將要執(zhí)行的目標(biāo)指令;
- 問題:如何改變CS、IP中的值?
- 設(shè)想:
- 1、通過使用Debug中的R命令進(jìn)行修改寄存器的值,例如rcs, rip。 結(jié)論:不可以。原因是:Debug是調(diào)試手段,并非程序方式;
- 2、通過mov指令修改。結(jié)論:不可以。原因是:CPU不提供對CS、IP修改的指令;
- 3、轉(zhuǎn)移指令jmp。 結(jié)論:可行。
轉(zhuǎn)移指令jmp
- 1、同時修改CS、IP的內(nèi)容
# jmp 段地址:偏移地址
# 作用: 使用指令中給出的段地址修改CS,偏移地址修改IP。
jmp 2AE3:3
jmp 3:0B16
- 2、僅修改IP的內(nèi)容
# jmp 某一合法寄存器
# 作用:用于修改IP值
jmp ax(類似于 mov IP, ax)
jmp bx
問題分析
jmp具體過程
CPU執(zhí)行指令從20000H開始,執(zhí)行的序列是:文章來源地址http://www.zghlxwxcb.cn/news/detail-719923.html
1. mov ax 6622
2. jmp 1000:3
3. mov ax, 0000
4. mov bx, ax
5. jmp bx
6. mov ax, 0123H
7. 循環(huán)轉(zhuǎn)至第三步執(zhí)行
文章來源:http://www.zghlxwxcb.cn/news/detail-719923.html
到了這里,關(guān)于【匯編語言】CS、IP寄存器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!