Reputation: 35
I'm trying to build assembly YASM code that is supposed to calculate the distance between two points (A and B) on 2D plane.
This the command that I'm using to build the code:
yasm -f elf64 -g dwarf2 -l distance.lst distance.asm
distance.asm:2: error: label or instruction expected at start of line distance.asm:4: error: label or instruction expected at start of line
I'm new to assembly and can' figure out how to fix error:
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
My question is: why am I getting error shown above? (I have read similar questions on stackoverflow, but I still couldn't figure out what is wrong with my code)
Upvotes: 1
Views: 565
Reputation: 14181
Instead of labels
Ax, Ay, Bx, By
use others, e. g.
Mx, My, Nx, Ny
because labels must not be register names as AX
, BX
, CX
, ... (Ay
and By
are OK).
Upvotes: 2