1. mips gcc 설치
1 | apt-get install gcc-mips-linux-gnu | cs |
2. 코드 작성
1 2 3 4 5 6 7 8 9 | ➜ ubuntu vi a.c ➜ ubuntu cat a.c int a[] = { -1, 0x1234, 0x00ff }; int main(){ a[0] = a[1]; a[1] = a[2]; a[2] = 10; } | cs |
3. mips gcc를 사용해서 asm으로 컴파일(-S 옵션), 최적화 제거(-O0)
1 | ➜ ubuntu mips-linux-gnu-gcc a.c -S -O0 | cs |
4. filename.s 파일 확인
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | cat a.s .file 1 "a.c" .section .mdebug.abi32 .previous .nan legacy .module fp=xx .module nooddspreg .abicalls .globl a .data .align 2 .type a, @object .size a, 12 a: .word -1 .word 4660 .word 255 .text .align 2 .globl main .set nomips16 .set nomicromips .ent main .type main, @function main: .frame $fp,8,$31 # vars= 0, regs= 1/0, args= 0, gp= 0 .mask 0x40000000,-4 .fmask 0x00000000,0 .set noreorder .set nomacro addiu $sp,$sp,-8 sw $fp,4($sp) move $fp,$sp lui $2,%hi(a) addiu $2,$2,%lo(a) lw $3,4($2) lui $2,%hi(a) sw $3,%lo(a)($2) lui $2,%hi(a) addiu $2,$2,%lo(a) lw $3,8($2) lui $2,%hi(a) addiu $2,$2,%lo(a) sw $3,4($2) lui $2,%hi(a) addiu $2,$2,%lo(a) li $3,10 # 0xa sw $3,8($2) move $2,$0 move $sp,$fp lw $fp,4($sp) addiu $sp,$sp,8 j $31 nop .set macro .set reorder .end main .size main, .-main .ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609" | cs |
'기타' 카테고리의 다른 글
IDA struct gdb에 적용하기(gdb add struct) (1) | 2019.05.06 |
---|---|
ocr 숫자 (0) | 2018.09.19 |
라즈베리파이 IP 확인하기 (1) | 2017.05.29 |
리눅스에서 C언어 컴파일 (0) | 2017.05.05 |
windows 10 bash ssh (0) | 2016.12.28 |