【问题标题】:How to modify .data values inside the .text segment in Mips?如何修改 Mips 中 .text 段内的 .data 值?
【发布时间】:2018-01-22 23:41:57
【问题描述】:

我在 .data 段声明的 Mips 中有一个全局变量

.data
   globalVariable:  .word  10

如何访问和修改 .text 段中的内容?

【问题讨论】:

  • 什么是“如何访问和修改 .text 段内的内容?”应该是什么意思?
  • 例如,如果您正在开发编译器,您应该在 .data 区域分配全局变量,而不是将它们保存在堆栈中。按照这种方法,您必须在运行时更改 .data 值的内容。这就是我想问的。抱歉,如果不清楚
  • 也可以从堆中分配。
  • 是的,但是 text segmenr 在哪里发挥作用?
  • 确实可以,@FrankC。但是,在开发编译器时,管理分配在堆中的全局变量可能会变得混乱,包括在进行递归时。

标签: assembly compiler-construction mips code-generation


【解决方案1】:
.data
   globalVariable:  .word  10

.text

   #access
   lw $a0, globalVariable 

   #modify
   la $a0, globalVariable #get address
   li $a1, 11 #new value
   sw $a1 0($a0) #save new value

   lw $a2, globalVariable  #get new value

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多