装配ARM cmp运算符

时间:2016-11-11 01:31:42

标签: assembly arm

我已经四处搜索并且没有找到答案,我正在使用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)

0 个答案:

没有答案