间接的jmp [英] indirect jmp
问题描述
什么C语句会转换为汇编中的间接jmp?我知道
函数指针调用会转换为间接''调用''
指令,但我不确定什么会导致间接jmp(例如.jmp
< register>)。
Ganesh
Hi,
What C statement(s) would translate to indirect jmp in assembly? I know
that function pointer invocation would translate to indirect ''call''
instruction, but I am not sure what will lead to indirect jmp (eg. jmp
<register>).
Ganesh
推荐答案
在文章< 11 ********************** @ g14g2000cwa.googlegroups .com> ;,
< ga **** *@gmail.com>写道:
In article <11**********************@g14g2000cwa.googlegroups .com>,
<ga*****@gmail.com> wrote:
什么C语句将转换为汇编中的间接jmp?我知道
函数指针调用会转换为间接的''call''
指令,但我不确定什么会导致间接jmp(例如.jmp
< register>)。
What C statement(s) would translate to indirect jmp in assembly? I know
that function pointer invocation would translate to indirect ''call''
instruction, but I am not sure what will lead to indirect jmp (eg. jmp
<register>).
longjump()将是最接近的。并不是说它特别关闭,
但它就是全部。
特别是,你不能拿标签的地址或者
a语句块或除例程之外的任何可执行元素,
和(如你所注意到的)没有转到例程。
>
根据你想要做的事情,你可能希望看看人们为模仿
共同惯例而开发的技术。
-
观看我们新的,改进的.signatures - Wittier!更深刻!并且
少于2克的Trite!
longjump() would be the closest. Not that it''s particularily close,
but it''s all that there is.
In particular, you cannot take the address of a label or of
a statement block or of any executable element other than a routine,
and (as you note) there is no goto a routine.
Depending on what you are trying to do, you might want to look
into techniques that people have developed for emulating
"co-routines".
--
Watch for our new, improved .signatures -- Wittier! Profounder! and
with less than 2 grams of Trite!
ga ***** @ gmail.com 写道:
什么C语句将转换为汇编中的间接jmp?我知道
函数指针调用会转换为间接的''call''
指令,但我不确定什么会导致间接jmp(例如.jmp
< register>)。
What C statement(s) would translate to indirect jmp in assembly? I know
that function pointer invocation would translate to indirect ''call''
instruction, but I am not sure what will lead to indirect jmp (eg. jmp
<register>).
没有直接的等价物。转换声明很接近。
你想做什么?间接跳转是一种技术,而不是一个问题。你想解决什么问题?
-
Keith Thompson(The_Other_Keith) ks *** @ mib.org < http://www.ghoti.net/~kst>
圣地亚哥超级计算机中心< *> < http://users.sdsc.edu/~kst>
我们必须做点什么。这是事情。因此,我们必须这样做。
There is no direct equivalent. A switch statement comes close.
What are you trying to do? An indirect jump is a technique, not a
problem; what problem are you trying to solve?
--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
ga ***** @ gmail。 com 写道:
#
#
#什么C语句将转换为汇编中的间接jmp?我知道
#函数指针调用会转换为间接''调用''
#指令,但我不确定什么会导致间接jmp(例如.jmp)
#< register>)。
ANSI C中没有直接等价物.gcc有标签变量。
-
SM Ryan http://www.rawbw.com/~ wyrmwif /
所以基本上,你只是追踪。
ga*****@gmail.com wrote:
# Hi,
#
# What C statement(s) would translate to indirect jmp in assembly? I know
# that function pointer invocation would translate to indirect ''call''
# instruction, but I am not sure what will lead to indirect jmp (eg. jmp
# <register>).
No direct equivalent in ANSI C. gcc has label variables.
--
SM Ryan http://www.rawbw.com/~wyrmwif/
So basically, you just trace.
这篇关于间接的jmp的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!