汇编中的.word、.data 和.text 是什么?

Rap*_*piz 8 assembly

我正在尝试学习更好地理解汇编程序

有人可以解释以下代码中的 .data、.word 和 .text 的含义吗?

我不明白这是做什么的以及在这种情况下它的作用

   .data
    array:
    .word 0x12121212, 0x23232323, 0x34343434, 0x4, 0x5
    .text
    add_array:
    li x1, 0x10000000
    add x3, x0, x0
    lw x2, 0(x1)
    add x3, x3, x2
    lw x2, 4(x1)
    add x3, x3, x2
    lw x2, 8(x1)
    add x3, x3, x2
    lw x2, 12(x1)
    add x3, x3, x2
    lw x2, 16(x1)
    add x3, x3, x2
Run Code Online (Sandbox Code Playgroud)

Mic*_*oni 6

.word本质上是在内存中创建一些空间来保存数据。它后面的每一项都是 4 个字节长。它类似于创建数组:

集会

array:
.word 0x12121212, 0x23232323, 0x34343434, 0x4, 0x5
Run Code Online (Sandbox Code Playgroud)

C

int array[] = {0x12121212, 0x23232323, 0x34343434, 0x4, 0x5};
Run Code Online (Sandbox Code Playgroud)

.text告诉汇编器切换到文本段(代码所在的位置),并.data告诉汇编器切换到数据段(数据所在的位置)。

  • 更具体地说,“.data”是*非零*、*读写*数据所在的位置。其他节名称包括用于只读数据的“.rodata”(或 Windows 上的“.rdata”)和用于归零数据的“.bss”。 (2认同)