Seg Faulting SPARC大会

时间:2014-11-06 02:26:34

标签: c sparc

我确定我的函数中的数字是否为零。如果它为零,我需要传递一些字符串,如" Is Zero"到我声明为B的变量中。我的函数确定它是否为零但是当我尝试使用我的SPARC源代码将字符串传递给变量B时我会出错。

以下是我在C驱动程序中尝试的内容:

void display( double, char* );   
char B[100];
double x = 0.000;
display(x, &B);

printf("%s", B);

这是我的SPARC代码:

 ZERO: .asciz "Is Zero\n"



.global display
.section ".text"
.align 4
display:    
         save   %sp, -96, %sp


         mov    %i0, %o0
         mov    %i1, %o1
         mov%i2, %o2

         call   is_zero         ! check if number is zero
         cmp    %o0, 0
         bne    zero
         nop


zero:
        save    %sp, -96, %sp
        set     ZERO, %l0
        ldub    [%l0], %l1
        cmp     %l1, 0          ! exit when zero byte reached
        beq     done
        nop
        stb     %l1, [%i2]
        inc     %l0
        inc     %i2

        ba      zero
        nop
done:
        ret
        restore

1 个答案:

答案 0 :(得分:2)

& B是char数组B的指针。 display函数在第二个参数中取一个char指针。 display(x,& B)应显示(x,B)。