在编译器中实现开关(x86-64)

时间:2016-11-11 09:43:10

标签: assembly compiler-construction

我实现了一个带跳转表的开关构造。 (Windows x86-64)

一切都已建立,但它冻结了。我想我不太明白间接跳跃是如何起作用的。

我设置了跳转表(在说明之前)。使用相对"距离的64位条目"我想跳。例如:

00 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00

(两个值,0和+18,具有正确的字节顺序)

我目前实施的跳转指令:

FF 25 A2 FF FF FF

翻译(使用反汇编程序):

jmp QWORD PTR [rip+0xffffffffffffffa2]

其中读取跳转表中的第一个值(偏移应该是正确的),即零。 所以,不应该将它添加到RIP并且不做任何跳转,i。即继续下一行?

0 个答案:

没有答案