gpt4 book ai didi

c - 段故障 SPARC 程序集

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:41 26 4
gpt4 key购买 nike

我正在确定函数中的数字是否为零。如果它为零,我需要将一些字符串(如“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

最佳答案

& B 是指向字符数组 B 的指针。显示函数在第二个参数中采用字符指针。display(x, & B) 应该是 display(x, B)。

关于c - 段故障 SPARC 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26770749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com