функция расстояния Хэмминга - PullRequest
0 голосов
/ 25 мая 2020

У меня есть этот Java код:

long[] va = new long[] {1, 0, 0, 1, 0};
long[] vb = new long[] {1, 1, 0, 1, 1};

long hamming(long[] va, long[] vb, long length) {
long hd = 0;
int i;
for (i = 0; i < length; i++) {
if (va[i] != vb[i]) {
hd++;
}
}
return hd;
}

, и я пытаюсь преобразовать его в Assembly x86_64:

va: .quad 1, 0, 0, 1, 0
vb: .quad 1, 1, 0, 1, 1
length: .quad 5

ea rbx, va /*va to rbx */
lea rcx, vb /*vb to rcx */
xor rax, rax 
mov r8, [rbx] 
mov r9, [rcx] 
mov r10, length /* i = 5 */
cycle: 
    cmp r8, r9 /
    jne next 
    inc rax /* if r8 is not equal to r9 */
    next: 
    inc rbx /* moving the pointer in va */
    inc rcx /* moving the pointer in vb*/
    dec r10 /*i-- */
    jne cycle /* if i is not equal jump back to cycle */
    call print_rax
call print_all

Проблема в том, что я могу ' t запустить ассемблерный код. Кто-нибудь может сказать мне, что случилось? Я совершенно новичок в сборке и не могу понять, в чем проблема.

...