文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
附录 D 低级 Icode 到高级 Icode 的映射
附录 D
低级 Icode 到高级 Icode 的映射
在低级和高级 Icode (中间代码) 之间的映射见图 D-1 所示。在高级 Icode 栏中,一个短划线(-) 表示低级 Icode 没有与之对应的高级 Icode,一个星号(*) 表示仅当该低级 Icode 在一个成语中的时候是某一个高级指令的组成部分,一个 f 表示一个 Icode 标志被设置而且该指令不再被考虑,一个 cc 表示该低级指令设置一个条件码,它没有对应的高级中间代码,而且将通过条件码传播把它去除,一个 n 表示该低级 Icode 指令在这个分析中不予考虑。被标记一个 n 的指令涉及处理机器字符串指令,dcc 执行这个分析时对此不作考虑。
最初的低级到高级的 Icode 映射是用寄存器表达。对 Icode 做更进一步的数据流分析把这些指令转换成不使用临时寄存器的表达式,只使用变量和寄存器变量(如果有的话)。
低级 Icode | 高级 Icode |
iAAA | - |
iAAD | - |
iAAM | - |
iAAS | - |
iADC | * |
iADD | asgn(+) |
iAND | asgn(&) |
iBOUND | f |
iCALL | call |
iCALLF | call |
iCLC | cc |
iCLD | cc |
iCLI | - |
iCMC | cc |
iCMP | cc |
iCMPS | n |
iREPNE_CMPS | n |
iREPE_CMPS | n |
iDAA | - |
iDAS | - |
iDEC | asgn(- 1) |
iDIV | asgn(/) |
iENTER | f |
iESC | f |
iHLT | - |
iIDIV | asgn(/) |
iIMUL | asgn(*) |
iIN | - |
iINC | asgn(+ 1) |
iINS | - |
iREP_INS | - |
iINT | - |
iINTO | - |
iIRET | - |
iJB | jcond(<) |
iJBE | jcond(<=) |
iJAE | jcond(>=) |
iJA | jcond(>) |
iJE | jcond(==) |
iJNE | jcond(<>) |
iJL | jcond(<) |
iJGE | jcond(>=) |
iJLE | jcond(<=) |
iJG | jcond(>) |
iJS | jcond(> 0) |
iJNS | jcond(< 0) |
iJO | - |
iJNO | - |
iJP | - |
iJNP | - |
iJCXZ | jcond(cx == 0) |
iJNCXZ | jcond(cx <> 0) |
iJMP | jmp |
iJMPF | jmp |
iLAHF | - |
iLDS | asgn(far pointer) |
iLEA | asgn(near pointer) |
iLEAVE | ret |
iLES | asgn(far pointer) |
iLOCK | - |
iLODS | n |
iREP_LODS | n |
iMOV | asgn(=) |
iMOVS | n |
iREP_MOVS | n |
iMOD | asgn(%) |
iMUL | asgn(*) |
iNEG | asgn(-) |
iNOT | ! |
iNOP | - |
iOR | asgn(|) |
iOUT | - |
iOUTS | - |
iREP_OUTS | - |
iPOP | pop |
iPOPA | - |
iPOPF | - |
iPUSH | push |
iPUSHA | - |
iPUSHF | - |
iRCL | * |
iRCR | * |
iREPE | n |
iREPNE | n |
iRET | ret |
iRETF | ret |
iROL | * |
iROR | * |
iSAHF | - |
iSAR | * |
iSHL | asgn(<<) |
iSHR | asgn(>>) |
iSBB | * |
iSCAS | n |
iREPNE_SCAS | n |
iREPE_SCAS | n |
iSIGNEX | asgn(=) |
iSTC | cc |
iSTD | cc |
iSTI | - |
iSTOS | n |
iREP_STOS | n |
iSUB | asgn(-) |
iTEST | cc |
iWAIT | f |
iXCHG | asgn(uses tmp) |
iXLAT | - |
iXOR | asgn(^) |
图 D-1: Icode 操作码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论