汇编:call指令
?
1. call 標(biāo)號, ?(機(jī)器碼中包含了位移)
? 執(zhí)行call指令,相當(dāng)于執(zhí)行下面兩條指令
? push ip
? jmp near ptr 標(biāo)號
?
2. call far ptr 標(biāo)號, ?(機(jī)器碼中包含轉(zhuǎn)移的目的地址)
? ? push cs(call指令的下一條指令的cs地址)
? ? push ip(call指令的下一條指令的ip地址)
? ? jmp far ptr 標(biāo)號
? ? 執(zhí)行該call指令后,修改的是cs,ip寄存器。 cs=標(biāo)號的段地址 ? ip=標(biāo)號的ip地址
?
?
3. call 16位寄存器?(轉(zhuǎn)移地址在寄存器中)
? ? ?push ip
? ? ?jmp 16位寄存器 ??
? ? ?執(zhí)行該call指令后,修改的是ip寄存器,ip寄存器是16位寄存器中的字型數(shù)據(jù)。
?
4. 轉(zhuǎn)移地址在內(nèi)存中
? ? call word ptr 內(nèi)存單元地址
? ? 相當(dāng)于執(zhí)行了 push ip, ? ?jmp word ptr 內(nèi)存單元地址
?
? ? call dword ptr 內(nèi)存單元地址
? ? 相當(dāng)于執(zhí)行了push cs, push ip, jmp dword ptr 內(nèi)存單元地址
?
?
?
?
總結(jié)
- 上一篇: Oracle: 数字前面自动补0几种方式
- 下一篇: 汇编:call指令的应用