因为PlayBook使用的是ARM的CPU所以使用的汇编也就是ARM的汇编了。
为了测试ARM汇编,在测试过程中就不能使用模拟器了,因为PlayBook 模拟器其实使用的是X86架构,不是ARM架构。
启动PlayBook NDK 开发环境,连接好PlayBook真机,就可以开始测试了。
在PlayBook NDK中新建一个BlackBerry Tablet OS c/c++项目,语言选择c,类型选择“Empty Application”,就是一个空的c项目。
然后在src目录中创建一个main.c源文件,将以下代码拷贝到main.c文件中:
然后在src目录下创建一个汇编文件,以.S为后缀,文件名没有要求,我使用的是MyASM.S
然后将以下代码拷贝到MyASM.S文件中:
完成之后就可以编译测试应用了,该应用是一个控制台应用,启动后马上关闭,控制台会输出以下内容:
t is: 10 now
t is: 30 now
t is: 32 now
测试成功后回过头看看代码的细节,理解其中的关键部分才能在以后的现实编程中可以在c代码中灵活调用ARM汇编。
首先看看main.c,首先是有关damonfunction的定义很重要,表明方法damonfunction是一个需要从外部链接进来的方法,该方法有一个参数
对应的,在MyASM.S中,就有对damonfunction这个标签的定义:
这就意味着在main.c的main函数中通过damonfunction(&t);调用damonfunction时就会调用MyASM.S中从damonfunction这个标签开始的程序。