间接的jmp [英] indirect jmp

查看:91
本文介绍了间接的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆