ndk内联汇编的使用之arm指令学习和调试

#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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值