Я пытаюсь создать код сборки 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, но так и не смог понять, что не так с моим кодом)
ax
иbx
— это имена регистров, поэтому их нельзя использовать в качестве меток. - person Bo Persson   schedule 16.04.2018