我正在尝试将高级代码转换为ARM指令集,我对在代码中初始化数组感到困惑,我坚持使用的代码是
-wall
我是否必须在数据部分使用.skip启动数组,或者是否可以在运行时分配内存?我对数组使用$ sp(堆栈指针)吗?
答案 0 :(得分:1)
直接等价是将40放在r0中,并使用它所针对的C ++ ABI中的任何损坏名称来调用operator new。地址将在r0中返回,并处理您需要遵循相应的异常处理ABI的错误。
如果您可以通过拨打delete
来取代对free
的相应来电(例如,如果您要转换整个程序),则可以拨打malloc
,因此不必担心C ++ ABI。再次在r0和malloc中放置40(每个4字节10个整数)将返回指向r0中分配的内存的指针。
您尚未发布足够的代码来确定它是否可以转换为静态或堆栈分配。