Assembly 代码写入1,但不写入标准输出?

Assembly 代码写入1,但不写入标准输出?,assembly,linker,sparc,Assembly,Linker,Sparc,我试图在sparc32上运行一些简单的汇编代码,但它不会写入标准输出,问题出现在ta 0x00或ta 0x08上: # as -s gah.s -o gah.o # ld gah.o -o gah -lc # ./gah # # truss ./gah execve("./gah", 0xEFFFFE28, 0xEFFFFE30) argc = 1 [..] open("/usr/platform/SUNW,SPARCstation-20/lib/libc_psr.so.1", O_RDONL

我试图在sparc32上运行一些简单的汇编代码,但它不会写入标准输出,问题出现在ta 0x00或ta 0x08上:

# as -s gah.s -o gah.o
# ld gah.o -o gah -lc
# ./gah
#
# truss ./gah
execve("./gah", 0xEFFFFE28, 0xEFFFFE30)  argc = 1
[..]
open("/usr/platform/SUNW,SPARCstation-20/lib/libc_psr.so.1", O_RDONLY) Err#2 ENOENT
close(3)                                        = 0
write(1, " H e l l o ,   W o r l d".., 14)      = 14
_exit(0)
# file gah
gah:            ELF 32-bit MSB executable SPARC Version 1, dynamically linked, not stripped
# echo foo > /dev/fd/1
foo
# uname -a
SunOS foobar 5.6 Generic_105181-05 sun4m sparc SUNW,SPARCstation-20
gcc version 2.95.2 19991024 (release)
这可能是链接器相关的问题吗?我似乎在truss输出中看到写入

dis输出:

如果您这样做,您将看到
stdout
只是一个标准的文件描述符,它引用了文件描述符编号
1


换句话说,当您向
stdout
写入时,您将看到一个操作系统调用,该调用指向文件描述符
1

与论坛站点不同,我们不使用“感谢”或“感谢任何帮助”或签名。好的,同意,但是为什么要删除代码?我没有删除任何代码。你是什么意思?这个答案可能是一个误解,因为我知道1和stdout是一样的。但是,我不知道,为了更好地解释我的问题。但是谢谢。