ndk内联汇编的使用之arm指令学习和调试
2016-06-06 19:36
274 查看
#include <stdio.h> int my_thumb_wjh(int dummy) { __asm__( "mov r0,#1 \t\n" "mov r1,#2 \t\n" "add r0,r0,r1 \t\n" "bx lr" ); return dummy; } int my_thumb(int dummy) { __asm__( "mov r0,#13 \t\n" "mov r1,#2 \t\n" "add r0,r0,r1 \t\n" "bx lr" ); return dummy; } int my_thumb2(int dummy) { __asm( "mov r0,#0x1\t\n" "ldr r0,__start\t\n" "adr r0,__start\t\n" "ldr r0,__start\t\n" "__start:\t\n" "nop\t\n" ); return dummy; } int data_function() { printf("data_function run\n"); return 1024; } static int my_arm(int dummy) { __asm__( "mov r0,#13 \t\n" "mov r1,#2 \t\n" "add r0,r0,r1 \t\n" "mov r3,#5 \t\n" "sub r0,r0,r3 \t\n" "mov r3,#9 \t\n" "mul r0,r0,r3 \t\n" "bx lr" ); return dummy; } void test() { __asm__( "bl data_function \t\n" ); printf("test run\n"); } //http://blog.csdn.net/zhangmiaoping23/article/details/44782843 //ndk内联汇编的使用之arm指令学习和调试 int main(int argc, char **argv) { int n = my_thumb(12); printf("result=%d\n", n); int result = my_thumb2(12); printf("result=%d\n", result); int result_my_arm = my_arm(12); printf("result_my_arm=%d\n", result_my_arm); test(); printf("Hello, World!\n"); //Set a breakpoint here or press F10 to step into. return 0; }
# Generated by VisualGDB LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := arm_demo #VisualGDBAndroid: AutoUpdateSourcesInNextLine LOCAL_SRC_FILES := arm_demo.c LOCAL_C_INCLUDES := LOCAL_STATIC_LIBRARIES := LOCAL_SHARED_LIBRARIES := LOCAL_LDLIBS := LOCAL_CFLAGS := LOCAL_CPPFLAGS := LOCAL_LDFLAGS := COMMON_SRC_FILES := $(LOCAL_SRC_FILES) include $(BUILD_EXECUTABLE)http://www.cnblogs.com/zenny-chen/archive/2011/11/01/2232305.html
相关文章推荐
- 2728:摘花生(数字金子塔变形)
- STL 简单 copy 算法的实现
- mysql大于等于号
- C++之new和delete重载
- 一份word让你掌握mysql数据库,史上最全
- 灭点检测算法综述
- 手抄代码1-24
- 分页查询(二)——用sql与linq查询
- 2718:移动路线(又是一个放苹果)
- SurfaceView与Canvas的结合实现气泡动态壁纸
- 进度条(5.30-6.4)
- 网络资源
- 第十五周程序-补充程序-1
- 8780:拦截导弹(最长上升子序列变式)
- 【转载】Eclipse:Android开发中如何查看System.out.println的输出内容
- celery与mangodb搭配应用
- 51nod 1267 4个数和为0
- 6045:开餐馆(最长上升子序列变式)
- jQuery选择器使用
- sqlcmd命令导入大容量的SQL本地文件至SQL server 2008