【发布时间】:2013-07-28 04:05:35
【问题描述】:
我是 MIPS 的新手,正在尝试使用 this 书籍自学。我正在尝试学习数据指令,这三个指令有什么区别:
list: .word 0:3
list: .word 3
list: .word
但我没有找到任何明确的文档/参考。
谢谢。
【问题讨论】:
我是 MIPS 的新手,正在尝试使用 this 书籍自学。我正在尝试学习数据指令,这三个指令有什么区别:
list: .word 0:3
list: .word 3
list: .word
但我没有找到任何明确的文档/参考。
谢谢。
【问题讨论】:
list: .word 0:3
将保留 3 个单词并将每个单词设置为值 0。这类似于:
int list[3] = {0, 0, 0};
或者
list: .space 12
(在这种情况下,该值隐式为 0)。
“0:3”中的 0 很可能是任何其他值。例如:
list: .word 'X':3
# or
list: .word 88:3
当缺少元素个数时,简直就是单词的值
list: .word 3
类似于
int list = 3;
最后一个,
list: .word
可能会导致汇编程序抱怨缺少操作数。
【讨论】:
static 关键字一样。动态内存,通常通过new 或malloc() 通常通过系统调用分配(查找syscall)。在堆栈上分配的内存是典型的 C 自动变量。例如void foo() { int x; } 这里的 x 是一个自动变量,将在堆栈上分配。