ChinaUnix.net
相关文章推荐:

gcc arm 汇编

.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,是不是应该改这个地方呢?还是别的方法?

by imbigapple - Mac OS X - 2009-01-12 19:56:37 阅读(8481) 回复(4)

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...

by hangtoo - C/C++ - 2006-04-21 10:53:37 阅读(972) 回复(0)

请问代码中内嵌的汇编是什么意思,那里有文档可以看。 static __inline__ int atomic_sub_and_test (int i, atomic_t * v) { unsigned char c; __asm__ __volatile__ ("lock ; subl %2,%0; sete %1":"=m" (v->counter), "=qm" (c):"ir" (i), "m" (v->counter):"memory"); return c; }

by taomi - C/C++ - 2008-01-21 19:41:12 阅读(1716) 回复(3)

vc 中的汇编代码 int a = 1, b = 2, c = 3; __asm { push a; push b; push c; pop b; pop a; pop c; } 转换成gcc的asm代码,要如何写?谢谢 [ 本帖最后由 okyzx 于 2007-2-3 23:23 编辑 ]

by okyzx - C/C++ - 2007-02-24 20:18:41 阅读(3261) 回复(14)

一个困扰许久的问题... vc 环境调试时可以查看每条语句的汇编代码 例如: 5: printf("hello,world!\n"); 00401028 push offset string "hello,world!\n" (0042001c) 0040102D call printf (00401060) 00401032 add esp,4 6: 7: return 0; 00401035 xor eax,eax gcc 中使用哪个选项可以生成 每条语句的对应汇编代码 ? $ gcc -S hello.c -o hello.s 好像只能生成汇编文件...

by xiongyu - C/C++ - 2008-05-01 22:23:47 阅读(3983) 回复(6)

Intel VC 可以编译成功 [code]void toggleLed(unsigned char ledMask) { #define P2LTCH 0xFF5E /* The address of the I/O register. */ asm { mov dx, P2LTCH /* Load the address of the register. */ in al, dx /* Read the contents of the register. */ mov ah, ledMask /* Move the ledMask into a register. */ xor al, ah ...

by shihyu - C/C++ - 2007-07-27 20:12:15 阅读(2568) 回复(7)

一段代码想用gcc改写 源代码是这样的(intel语法) mov token, eax 我改写成这样的 __asm__ __volatile__ ( "movl %%eax, $0" : "=m"(token) : ); 不知道为什么还是有错 请教各位大牛.

by stormbird - C/C++ - 2007-03-30 17:08:32 阅读(1241) 回复(2)

我用gcc调试这个程序的时候会出错 提示内嵌汇编的那一行说:test.c:7: error: expected ‘)’ before ‘:’ token 请问这是怎么回事? /**/ int main (int _argc,char* _argv[]) { int * _p = (int*)_argc; (*_p) = 9999; _asm_ ("":::"memory"); if (* _p==9999) return 5; return (* _p); }

by neilshi - C/C++ - 2006-08-22 18:47:24 阅读(1031) 回复(2)

#define set_domain(x) \ do { \ __asm__ __volatile__( \ "mcr p15, 0, %0, c3, c0 @ set domain" \ : : "r" (x)); \ @能猜出来这部分代码的功能,但是有什么资料可以查到这中写法的规则吗?谢谢 } while (0)

by rocky1972 - C/C++ - 2008-04-27 14:35:40 阅读(2627) 回复(5)

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 : 0: e1a0c00d mov ip, sp 4: e92dd800 stmdb sp!, {fp, ip, lr, pc} 8: e24cb004 sub fp...

by rocky1972 - C/C++ - 2008-04-09 20:35:20 阅读(4075) 回复(9)