【问题标题】:How to print .word value that is in the memory in Assembly without using la/li如何在不使用 la/li 的情况下打印汇编中内存中的 .word 值
【发布时间】:2011-09-02 01:14:41
【问题描述】:

如何在不使用la/li 的情况下打印Assembly 内存中的.word 值?我只能使用基本功能。我可以打印.asciiz,但我不知道我做错了什么,它没有打印内存地址中的值(整数):(

这是我打印出我的asciiz 的代码:

lui $a0, 0x1001
addi $a0, $a0, 12 # set the address to my string location
addi $v0, $0, 4 
syscall

我编写了相同的代码,但地址不同,但它没有打印出任何内容。我也尝试搜索,但找不到这个问题的确切答案。

请指教。任何帮助将不胜感激。如果我误解了什么,请纠正我。先感谢您。

【问题讨论】:

    标签: memory assembly printing mips


    【解决方案1】:

    您的代码中有几个错误。

    首先,如果你想打印一个整数,你应该使用系统调用 #1 而不是 #4

    然后,如果要打印存储在内存中的整数,则必须从内存中加载该单词。

    您的代码应如下所示:

      lw $a0, 0x100C   # Load the contents of word stored at address 0x1000 + 12
      addi $v0, $0, 1  # Set service #1 (which prints an integer)
      syscall          # Do the system call
    

    【讨论】:

      猜你喜欢
      • 2023-03-11
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 2015-09-09
      相关资源
      最近更新 更多