Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly qemu中模拟的ARM汇编程序在尝试写入有效内存地址时抛出SEGFULT_Assembly_Memory_Segmentation Fault_Arm_Qemu - Fatal编程技术网

Assembly qemu中模拟的ARM汇编程序在尝试写入有效内存地址时抛出SEGFULT

Assembly qemu中模拟的ARM汇编程序在尝试写入有效内存地址时抛出SEGFULT,assembly,memory,segmentation-fault,arm,qemu,Assembly,Memory,Segmentation Fault,Arm,Qemu,我有一个小武器装配程序,我正在尝试模拟: .equ _STACK_SIZE, 64 .align 4 _stack_start: .fill _STACK_SIZE, 1, 0 _stack_end: .text .global _start _start: ldr r0, =0x101 ldr r1, =0x102 ldr r0, =_stack_start str r1, [r0] push {r0,

我有一个小武器装配程序,我正在尝试模拟:

.equ _STACK_SIZE,  64

.align 4
_stack_start:
    .fill _STACK_SIZE, 1, 0
_stack_end:

.text
.global _start
_start:
    ldr     r0, =0x101
    ldr     r1, =0x102
    ldr     r0, =_stack_start
    str     r1, [r0]
    push    {r0,r1}
这个程序正在抛出一个seg。到达
str
行时出现故障。据我所知,该指令正在写入一个有效的内存区,该内存区已被
.fill
分配。此外,分解显示以下内容:


empty:     file format elf32-littlearm


Disassembly of section .text:

00008000 <_stack_start>:
    ...

00008040 <_start>:
    8040:   e59f0034    ldr r0, [pc, #52]   ; 807c <_start+0x3c>
    8044:   e59f1034    ldr r1, [pc, #52]   ; 8080 <_start+0x40>
    8048:   e59f0034    ldr r0, [pc, #52]   ; 8084 <_start+0x44>
    804c:   e5801000    str r1, [r0]

[...]

空:文件格式elf32 littlearm
第节的分解。正文:
00008000 :
...
00008040 :
8040:e59f0034 ldr r0,[pc,#52];807c
8044:e59f1034 ldr r1,[pc,#52];8080
8048:e59f0034 ldr r0,[pc,#52];8084
804c:e5801000 str r1[r0]
[...]

所以
\u stack\u start
实际上就在那里为什么内存区域无效?

正如@fuz所解释的,我需要在
\u stack\u start
之前添加
.data

.data
.align 4
_stack_start:
[...]

正如@fuz所解释的,我需要在
\u stack\u start
之前添加
.data

.data
.align 4
_stack_start:
[...]

无法写入
.text
部分。将变量放入
.data
中。不能写入
.text
部分。将变量放入
.data
中。