将此ARM64程序集转换成Python吗?

时间:2019-11-20 23:40:02

标签: python assembly arm64

假设X6是数组“ A”的基地址

假设X7是数组“ B”的基地址

F,G,H,I分别为X0,X1,X2,X3,X4

此AArch64程序集到底在做什么?

使用上述变量的python代码表示会很棒:)

while (x){
app.page.descendents.label1 = google.script.run.getCount(runID);

Utilities.sleep(5000);
}

我在LDUR阶段迷路了,X5和X8到底是什么

1 个答案:

答案 0 :(得分:0)

  

ADD X9,X6,#8

     

我知道这是X9 = A + 8,不确定数组的值在这里

正确。正如问题描述所述,X6的值只是数组的基地址。

  

STUR X1,[X6,#0]

     

我相信这会将X1的值“存储”到A [0]吗?

正确。在问题描述中,X1被定义为变量G。这就是A[0] = G;

  

LDUR X8,[X10,#0]

     

这将值“存储”到X10 [0]?进入X8?

正确,但是将数据从内存移入寄存器称为负载。因此,指令名称(LD =负载)。还要记住,X10已设置为X7+16,其中X7是数组B。此外,LDUR使用字节索引,因此16表示16个字节。假设B是一个包含64位数字的数组,每项8个字节,那么16个字节就是2个项目。所有这些都归结为X8 = B[2];

  

LDUR X5,[X9,#0]

按照同样的逻辑,这是X5 = A[1];,所以最终结果是F = B[2] + A[1];