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 如何写入';已使用malloc在ARM部件中创建了_Assembly_Arm - Fatal编程技术网

Assembly 如何写入';已使用malloc在ARM部件中创建了

Assembly 如何写入';已使用malloc在ARM部件中创建了,assembly,arm,Assembly,Arm,我正在尝试写入一个数组,该数组是在ARM汇编中使用malloc在堆上创建的。我似乎不知道该怎么做。当我尝试打印.cpp文件中的数组时,只打印值0 目前我有这个 .text .global wr wr: push {lr} mov r0, #12 mov r1, #5 mov r2, #6 mov r3, #7 mov r7, #0 bl malloc pop {lr} mov

我正在尝试写入一个数组,该数组是在ARM汇编中使用malloc在堆上创建的。我似乎不知道该怎么做。当我尝试打印.cpp文件中的数组时,只打印值0

目前我有这个

    .text
    .global wr

     wr:
     push {lr}
     mov r0, #12
     mov r1, #5
     mov r2, #6
     mov r3, #7
     mov r7, #0

     bl malloc

     pop {lr}
     mov pc, lr
     str r1, [r0, r7, lsl #2]
     add r7, r7, #1
     str r2, [r0, r7, lsl #2]
     add r7, r7, #1
     str r3, [r0, r7, lsl #2]

     mov pc, lr
将来我可能会将其放入一个循环中,但此时我只想写入数组


编辑:我将名称从“write”更改为“wr”。

您是否意识到您的写入代码从未到达,因为您使用
mov pc,lr从函数返回?学习使用调试器。
write
是函数名的错误选择。已经有一个POSIX标准函数叫:不,我没有意识到那个小丑。你能推荐一个调试器吗?我只是在Linux终端中使用g++-arm Linux编译器来完成这项工作。我似乎不知道如何让gdb一步一步地运行以测试代码。
stepi
si
是gdb中的step指令。谢谢Jester。您确实意识到您的编写代码永远无法到达,因为您使用
mov pc,lr
从函数返回?学习使用调试器。
write
是函数名的错误选择。已经有一个POSIX标准函数叫:不,我没有意识到那个小丑。你能推荐一个调试器吗?我只是在Linux终端中使用g++-arm Linux编译器来完成这项工作。我似乎不知道如何让gdb一步一步地运行以测试代码。
stepi
si
是gdb中的step指令。谢谢Jester。