【发布时间】:2014-11-06 02:26:34
【问题描述】:
我正在确定我的函数中的数字是否为零。如果它为零,我需要将一些字符串(如“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
【问题讨论】: