猿问

你好,求问一下在汇编语言中的call是什么意思?

刚刚看到一个朋友写的病毒分析报告中,有这样一行00409917 . E9 D2010000 jmp 00409AEE ;这个jmp跳到后面 一个地方 然后又call了回来 应该是为了获得call函数下条指令的地址吧 ;这句话大概是什么意思,我对汇编懂得不多,新手入门

郎朗坤
浏览 277回答 3
3回答

烙印99

汇编语言中CALL指令调用一个子程序,CPU执行call指令,进行两步操作:(1)将当前的 IP 或 CS和IP 压入栈中;(2)转移到紧跟的标号行地址执行程序。比如:CALL InputCheck........InputCheck:........其处理步骤如下:(1) (sp) = (sp) – 2((ss) ×16+(sp)) = (CS)(sp) = (sp) – 2((ss) ×16+(sp)) = (IP)(2) (CS) = InputCheck所在的段地址(IP) = InputCheck所在的偏移地址

慕娘9325324

JMP是转移指令,转到JMP后面写的地址CALL也是转移的效果,转到CALL之后写的标识符

冉冉说

call 标号 ;转移到标号处,但在转移之前将ip/cs和ip入栈;即push ip jmp near ptr 标号/push cs push ip jmp far ptr 标号
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答