首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mmix上与gcc的Printf问题

在mmix上与gcc的Printf问题
EN

Stack Overflow用户
提问于 2011-06-30 20:43:19
回答 2查看 524关注 0票数 2

我已经根据http://www.bitrange.com/mmix/install.html为MMIX4.6.0编译了《gcc 4.6.0》。在我尝试了它们简单的hello world之后,或者使用超过第一个字符串的任何其他对printf的调用,只打印了第一个字符串。例如。

代码语言:javascript
复制
lada@:~/f/c> cat hellommix.c
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char **argv)
{
  printf ("hello, %s\n", argc > 1 ? argv[1] : "world");
  exit (0);
}

lada@:~/f/c> mmix-gcc hellommix.c 
lada@:~/f/c> mmix ./a.out "abc"
hello, lada@:~/f/c> 

生成的程序集如下所示:

代码语言:javascript
复制
# 1 "hellommix.c"
! mmixal:= 8H LOC Data_Section
        .text ! mmixal:= 9H LOC 8B
        .section        .rodata
        .p2align 2
        LOC @+(4-@)&3
LC:0    IS @
        BYTE "world",#0
        .p2align 2
        LOC @+(4-@)&3
LC:1    IS @
        BYTE "hello, %s",#a,#0
        .text ! mmixal:= 9H LOC 8B
        .p2align 2
        LOC @+(4-@)&3
        .global main
main    IS @
        SUBU $254,$254,24
        STOU $253,$254,16
        ADDU $253,$254,24
        GET $2,rJ
        SET $3,$0
        SUBU $0,$253,24
        STOU $1,$0,0
        SUBU $0,$253,12
        STTU $3,$0,0
        SUBU $0,$253,12
        LDT $0,$0,0
        SLU $0,$0,32
        SR $0,$0,32
        CMP $0,$0,1
        BNP $0,L:2
        SUBU $0,$253,24
        LDO $0,$0,0
        LDO $0,$0,8
        JMP L:3
L:2     IS @
        GETA $0,LC:0
L:3     IS @
        GETA $5,LC:1
        SET $6,$0
        PUSHJ $4,printf
        PUT rJ,$2
        SETL $5,0
        PUSHJ $4,exit

        .data ! mmixal:= 8H LOC 9B
EN

回答 2

Stack Overflow用户

发布于 2011-06-30 22:51:41

试试这些:

  • 在退出前放置了一个fflush (stdout);。(虽然通常情况下,posix的man 3 exit会告诉所有缓冲区都被刷新了;也许是特定于mmix的)
  • 转储所有参数,只是为了看看有什么。

-

代码语言:javascript
复制
for (int x=0; x!=argc; ++x) {
    printf ("arg %d: \"%s\"\n", x, argv[x]);
}
票数 2
EN

Stack Overflow用户

发布于 2021-08-10 03:33:20

输入代码:

代码语言:javascript
复制
setbuf(stdout,NULL); 

在变量声明之后。

像这样,只需添加setbuf(stdout,NULL);这段代码。仅在第一个顶部。然后你就可以编写代码了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6534926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档