.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...
★ 介绍 本文介绍了Unix病毒机制、具体实现以及elf文件格式。简述了Unix病毒检测和反检 测技术,提供了Linux/i386架构下的一些例子。需要一些初步的Unix编程经验,能够 理解Linux/i386下汇编语言,如果理解elf本身更好。 本文没有任何实际意义上的病毒编程技术,仅仅是把病毒原理应用到Unix环境下。这 里也不打算从头介绍elf规范,感兴趣的读者请自行阅读elf规范。 ★ 感染 elf 格式文件 进程映象包含"文本段"和"数据段",文本...
[这个贴子最后由mzd73在 2002/11/15 11:08pm 编辑] ★ 介绍 本文介绍了Unix病毒机制、具体实现以及elf文件格式。简述了Unix病毒检测和反检 测技术,提供了Linux/i386架构下的一些例子。需要一些初步的Unix编程经验,能够 理解Linux/i386下汇编语言,如果理解elf本身更好。 本文没有任何实际意义上的病毒编程技术,仅仅是把病毒原理应用到Unix环境下。这 里也不打算从头介绍elf规范,感兴趣的读者请自行阅读elf规范。 ★ 感染 E...
#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标准汇编不是就能直接编译了吗? 定义自己的格式有什么必要吗?
也许这个问题太简单了,但我真的搞不明白,哪位大侠帮帮记忙 arm-elf-as 汇编中用什么表示注释? 有说 ; @ // /* */ 好像 ; 和 // 有时候不行 ---------------------------------------- .text .globl _start ; abc @ abc /* abc */ // abc _start: mov r0,#0 b . .end ---------------------------------------------- D:\zll>arm-elf-as -o test.o test.s test.s: Assembler messages: test.s:3: ...
arm-elf-gcc编译armboot时出错:/usr/local/bin/arm-elf-gcc:1:syntax error: "(" unexpected. 什么意思?知道的请回答。