我正在尝试构建组装YASM代码,用于计算2D平面上两点(A和B)之间的距离。
这是我用来构建代码的命令:
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上读过类似的问题,但我仍然无法弄清楚我的代码有什么问题)
答案 0 :(得分:2)
代替标签
Mx, My, Nx, Ny
使用他人,e。克。
AX
因为标签不能是注册名称BX
,CX
,Ay
,...(By
和return_sequences=False
都可以。)