首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用visual studio arm汇编程序

使用visual studio arm汇编程序
EN

Stack Overflow用户
提问于 2012-06-26 00:51:13
回答 1查看 3.1K关注 0票数 1

我有一个用于Windows Mobile6TI OMAP3430平台的Visual Studio2008Neon项目,我想使用ARM Cortex A8霓虹灯指令优化一些功能。Visual Studio2008包括微软ARM汇编程序v15.00.20720 (armasm.exe)

我在test.h中声明了一个函数

代码语言:javascript
复制
extern "C" unsigned __int32 Test();

并在test.asm中实现为

代码语言:javascript
复制
ALIGN
Test FUNCTION
    EXPORT Test
    ldr r0, [r15]   ; load the PC value in to r0
    mov pc, lr      ; return the value of r0
ENDFUNC

我在pre-link事件中执行arm汇编程序,如下所示:

代码语言:javascript
复制
armasm.exe -32 -CPU ARM8 test.asm test.obj

但是,我从工具中得到了这些错误

代码语言:javascript
复制
test.asm(4) : error A0064: code inside data section
1>    ldr r0, [r14]   ; load the PC value in to r0
test.asm(5) : error A0064: code inside data section
1>    mov pc, lr      ; return the value of r0
test.asm(7) warning : A0063: missing END directive
1>ENDFUNC

使用Visual Studio ARM汇编程序的正确语法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-26 06:25:36

ARMASM非常易于使用,因为许多选项默认为合理的值。下面是你的代码的一个版本,它可以工作:

代码语言:javascript
复制
  AREA my_test, CODE, READONLY  ; name this block of code
  EXPORT test

test proc      ; start of a procedure
     ldr r0,[r15]
     mov pc,lr
     endp      ; end of a procedure

     end       ; end of the file

更新:忘记包含'area‘

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11193653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档