[code] .text_rom:90015290 addiu $sp, -0x10 .text_rom:90015294 sw $fp, 0x10+var_8($sp) .text_rom:90015298 move $fp, $sp .text_rom:9001529C sw $a0, 0x10+arg_0($fp) .text_rom:900152A0 sw $a1, 0x10+arg_4($fp) .text_rom:900152A4 lw $v0, 0x10+arg_0($fp) .text_rom:900152A8 ...
当前版本: 0.3 1. GCC 内嵌汇编的基本格式 asm("assembly code"); 如: asm("syscall"); //触发一个系统调用 如果有多条指令,则需在指令尾部添加'\t'和'\n',如: asm("li v0, 4011\t\n" "syscall"); 括号里的字符串 GCC 前端不作分析,直接传给汇编器 as ,故而相联指令间需插入换行符。 '\t' 加入只为排版对齐一些而已,可以使用 gcc -S tst.c -o tst.s 查看生成的 tst.s 因为 GCC 并不对 asm 后括...
1. GCC 内嵌[color="#ff0000"]汇编的基本格式 asm("assembly code"); 如: asm("syscall"); //触发一个系统调用 如果有多条指令,则需在指令尾部添加'\t'和'\n',如: asm("li v0, 4011\t\n" "syscall"); 括号里的字符串 GCC 前端不作分析,直接传给[color="#ff0000"]汇编器 as ,故而相联指令间需插入换行符。 '\t' 加入只为排版对齐一些而已,可以使用 gcc -S tst.c -o tst.s 查看生成的 tst.s 因为 ...
这个是mips 处理ade异常里的一段汇编 case lh_op: if (!access_ok(VERIFY_READ, addr, 2)) goto sigbus; __asm__ __volatile__ (".set\tnoat\n" #ifdef __BIG_ENDIAN "1:\tlb\t%0, 0(%2)\n" "2:\tlbu\t$1, 1(%2)\n\t" #endif #ifdef __LITTLE_ENDIAN "1:\tlb\t%0, 1(%2)\n" "2:\tlbu\t$1, 0(%2)\n\t" #endif "sll\t%0, 0x8\n\t" "or\t%0, $1\n\t" "li\t%1, 0\n" ------------------------...
本帖最后由 wsgtrsys 于 2013-08-18 19:26 编辑 因为需要对内核中的一个函数劫持后,修改其中的一个变量 。 是参考这个篇文章的的做法。 http://jan.stancek.eu/mips_function_runtime_detour 原来曾经在2.6.16的内核上劫持成功,但最近在2.6.35的内核上就不行了。 2.6.35内核的代码部分仿佛是只读的,不能修改原来的函数的机器码。 有两个问题: 1、mips上是不是有类似于x86上的cr0寄存器? 2、如果不是用cr0进行保护,是不是...
本帖最后由 1ming0 于 2012-02-07 14:10 编辑
ffffffff80216afc
我最近在做一个视频解码器,跑在mips上。代码中有一个求绝对值的函数,调用很频繁,我就把他改写成了内敛汇编以提高解码器性能。可是将改后的汇编函数放到程序里发现解出来的图像和修改之前的不一样。先把汇编函数贴出来: int abs(int iNum) { asm volatile ( "nor $2,$0,%1\n\t" "addiu $2,$2,1\n\t" "slti $3,%1,0\n\t" "movz %0,$2,$3\n\t" ...
本人刚刚接触mips的汇编,编写了一个简单的程序。 程序如下: test.S ================================ .data string: .asciiz "Hello Word!\n" .text __start: li $2, 4 la $4, string syscall li $2, 10 syscall ================================= #mips_lexra_fp_be-as -o testmips.o test.S #mips_lexra_fp_be-ld -o testmips testmips.o #mips_lexra_fp_be-ld: warning: cannot find entry symbol __s...