在我的函数中,我正在确定一个数字是否为零。如果是零,我需要将"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发布于 2014-11-06 02:48:10
&B是指向char数组B的指针。显示函数在第二个参数中取一个char指针。显示(x,&B)应该是显示(x,B)。
https://stackoverflow.com/questions/26770749
复制相似问题