我已经声明了两个空格,我将把它们用作数组。 (无论如何,这就是我所希望的)
WORM_X: .space 128
WORM_Y: .space 128
它们将保存 X 和 Y 坐标。
我试图将一些值放入数组中,然后使用 nib_put_scr 将它们打印在屏幕上,这是一个使用curses.h 的C 函数。
当我运行此代码时,出现分段错误。
现在有人知道我做错了什么吗?
(顺便说一句,我是组装的初学者)
# Sets up the WORM_Y array
mov LENGTH, %eax
add Y, %eax
mov %eax, CMP
mov $WORM_Y, %eax
mov Y, %ebx
loop_addy:
mov %ebx, 0(%eax)
add $4, %eax
inc %ebx
cmp CMP, %ebx
jne loop_addy
# Sets up the WORM_X array
mov LENGTH, %eax
add X, %eax
mov %eax, CMP
mov $WORM_X, %eax
mov X, %ebx
mov X, %ecx
loop_addx:
mov %ecx, 0(%eax)
add $4, %eax
cmp CMP, %ebx
jne loop_addx
# Prints out signs on the screen with coordinates WORM_X & WORM_Y
mov $WORM_X, %ebx
mov $WORM_Y, %edx
loop_printtest:
push $48
push (%ebx)
push (%edx)
call nib_put_scr
addl $12, %esp
add $4, %ebx
add $4, %edx
mov (%ebx), %ecx
cmp $0, %ecx
jne loop_printtest