.globl _start _start: b reset ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq _TEXT_BASE: .word TEXT_BASE .globl _armboot_start _armboot_start: .word _start .globl _bss_start _bss_start: .word __bss_start .globl _bss_end _bss_end: .word _end adr r0, _start /* r0 <- current position o...
by luo_hao - 内核/嵌入技术 - 2006-07-27 22:17:18 阅读(1098) 回复(1)
有两个arm asm文件,属于gnu asm语法,后缀为.S .加入project以后,可能被认为是intel 汇编,编译出错。 我看编译Rules里的编译器为Nasm,是不是应该改这个地方呢?还是别的方法?
int checksum_v1(int *data) { char i; //2nd time, "int" replaces "char" int sum = 0; for(i = 0; i < 64; i++) sum += data; return sum; } 上面这段代码,用arm-linux-gcc -S checksum_v1.c 反汇编一次; 然后讲int 代替char,再反汇编一次,将所得的两个文件比较了一下 1st: str r3, [fp, #-20] .L2: ldr r3, [fp, #-20] cmp r3, #63 ble .L5 b .L3 .L5: ldr r3, [fp, #-20] mov r2, r3, asl #2 ldr r3, [f...
#define set_domain(x) \ do { \ __asm__ __volatile__( \ "mcr p15, 0, %0, c3, c0 @ set domain" \ : : "r" (x)); \ @能猜出来这部分代码的功能,但是有什么资料可以查到这中写法的规则吗?谢谢 } while (0)
C代码:
//foo.c
void foo(int m, int n)
{
printf("m=%d, n=%d\n", m, n);
}
int main()
{
int b = 3;
foo(b+=3, ++b);
printf("b=%d\n", b);
return 0;
}
上面c代码对应的汇编代码:
arm-linux-objdump foo.o
temp.o: file format elf32-littlearm
Disassembly of section .text:
00000000
现在看的书上只是介绍了汇编的命令,并没有什么实例。现在写一个arm汇编根本格式都不正确。 还有我怎么样查看我汇编执行步骤是否正确,有像printf这样的调试语句么? 请大家帮帮忙。指条明路
刚接触汇编 问个低级的问题 GNU arm 汇编为什么和arm 标准汇编格式不一样?兼容arm标准汇编不是就能直接编译了吗? 定义自己的格式有什么必要吗?
我原先在windows的环境下,单纯使用OpenGL库实现过一个虚拟仪表的项目。 现在想把它移植到嵌入式的环境下,现在定的硬软件环境如下: ucLinux+arm9 原来在vc下用过QT4开发过界面的,也知道它也有OpenGL的相关类。 现在遇到的问题是不知道QTE是不是也可以实现。 不能实现的话,有什么好的实现方法吗? 谢谢大家了!
最近要在arm4510做东西,从网上下载了4510bsp,其中init.s等文件是arm格式的汇编,但是我要在GCC的环境下对它进行汇编(我们的开发环境是GCC,而不是arm提供的开发环境),所以要将它改成at&t格式。 但是苦于相关资料甚少,从书店买了本书也不是很详细,故特来咨询一下。 Reset_Handler ;Reset Entry Point [ ROM_AT_ADDRESS_ZERO | LDR r0, =HandleSwi ; SWI exception table address LDR r1, =SystemSwiHandler STR r1, [r0] s...