我已經聲明瞭兩個空格,我將其用作一個數組。 (這正是我所希望的)程序集(x86)循環分段錯誤
WORM_X: .space 128
WORM_Y: .space 128
它們將保存X和Y座標。
我想在數組中使用som值,然後使用nib_put_scr將它們打印在屏幕上,即使用curses.h的C函數。
當我運行這段代碼時,我得到了段錯誤。 現在做任何人我做錯了什麼?
(我是一個完整的初學者對集會的BTW)
# 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
發佈seg故障的堆棧跟蹤一定會有所幫助。 – steve
如何檢查堆棧跟蹤? – Bewn
你是哪個操作系統? – steve