метка или инструкция ожидается в начале строки YASM

Я пытаюсь создать код сборки YASM, который должен вычислять расстояние между двумя точками (A и B) на 2D-плоскости.

Это команда, которую я использую для создания кода:

yasm -f elf64 -g dwarf2 -l distance.lst distance.asm

Distance.asm:2: ошибка: метка или инструкция ожидается в начале строки Distance.asm:4: ошибка: метка или инструкция ожидается в начале строки

Я новичок в сборке и не могу понять, как исправить ошибку:

    segment .data
Ax  dq      0       ; x coordinate of A
Ay  dq      0       ; y coordinate of A
Bx  dq      1       ; x coordinate of B
By  dq      1       ; y coordinate of B

    segment .text
    global _start
_start:
mov     rax,    [Ax]    ; Writing values
mov     rbx,    [Ay]    ; of A and B
mov     rcx,    [Bx]    ; coordinates to
mov     rdx,    [By]    ; registers
sub     rax,    rcx     ; Length of the first cathetus
sub     rbx,    rdx     ; Length of the second cathetus
imul    rax,    rbx     ; Suqare of distanse between A and B

Мой вопрос: почему я получаю сообщение об ошибке, показанное выше? (Я читал подобные вопросы в stackoverflow, но так и не смог понять, что не так с моим кодом)


person Misho Tektumanidze    schedule 16.04.2018    source источник
comment
ax и bx — это имена регистров, поэтому их нельзя использовать в качестве меток.   -  person Bo Persson    schedule 16.04.2018


Ответы (1)


Вместо ярлыков

Ax, Ay, Bx, By

использовать другие, т. грамм.

Mx, My, Nx, Ny

потому что метки не должны быть именами регистров, такими как AX, BX, CX, ... (Ay и By в порядке).

person MarianD    schedule 16.04.2018