c - MIPS 结构节点

标签 c assembly mips

以下链表节点在 C 中声明:

struct node {
  double val;
  struct node *next;
}

​假设一个问题所需的链接节点不超过20个。为链表预留20个节点空间的MIPS语句是什么?

最佳答案

您可以在 C 中执行此操作并检查 C 编译器生成的结果程序集。无论如何...

double 浮点 -> 64 位

指针 -> 32 位

总结构大小 -> 96 位 + 32 位对齐 double -> 128 位

20 个结构体 + 1 个头列表指针(假设它是一个简单列表,只有一个指向起始元素的指针)-> 20 x 128 + 32 = 2592 位

.space 2592

关于c - MIPS 结构节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7758958/

相关文章:

assembly - 高内存地址与低内存地址和分支

arrays - MIPS:将用户输入字符串与内存中的字符串数组进行比较

C: int 函数返回错误值

c - 如何确定TCP数据包中数据有效载荷的开始?

c - 将 char 指针作为参数传递给函数

c++ - g++ 4.6.1 编译器错误 : Error: unknown pseudo-op: `.cfi_personality'

c - MPI_Send 或 MPI_Recv 的限制?

assembly - 为什么 mov eax,val 不是 mov $val,%eax 的英特尔语法等效项?

memory - 判断内存位置是否在 CPU 缓存中

assembly - 为 sw MIPS 汇编指令指定一个参数?