我已经四处搜索并且没有找到答案,我正在使用cmp来比较2个我知道应该相同的值,因为它们在打印时看起来是相同的。但是,由于某种原因,装配不认为它们是相同的。我对组装非常新,我能弄清楚的是它可能与我正在使用的寄存器有关。
ldr x19, [x0, x_offset]
ldr x21, [x1, x_offset]
cmp x19,x21
b.ne returnResult
在上面的代码中,它总是采用断点。我知道x19 = x21,因为我打印出这些值。也许是在检查地址?
fmtTest:.string "First value is : %d, Second value is : %d\n"
.balign 4
define(printf, `
adrp x0, $1
add x0, x0, :lo12:$1
bl `printf'')
mov x1, x19
mov x2, x21
printf(fmtTest)