最近在學習arm體系架構,先簡單了解一下apcs。
什麼是apcs?
具體的概念隨後理解下,先提供乙個彙編和反彙編的方法,以供實驗。之後會詳細寫apcs的東西。
獲取arm gnu工具鏈之後,我們寫乙個簡單的c**。
int func0(int x)
void main()
然後執行: arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb hello.c -nostartfiles -o hello.o
這時會生成hello.o,我們再反彙編一下:
arm-none-eabi-objdump -s hello.o > hello.s
hello.s:
hello.o: file format elf32-littlearm
disassembly of section .text:
00008000 :
8000: b480 push
8002: b083 sub sp, #12
8004: af00 add r7, sp, #0
8006: 6078 str r0, [r7, #4]
8008: 687b ldr r3, [r7, #4]
800a: 1c5a adds r2, r3, #1
800c: 607a str r2, [r7, #4]
800e: 4618 mov r0, r3
8010: 370c adds r7, #12
8012: 46bd mov sp, r7
8014: bc80 pop
8016: 4770 bx lr
00008018 :
8018: b580 push
801a: b082 sub sp, #8
801c: af00 add r7, sp, #0
801e: 2309 movs r3, #9
8020: 607b str r3, [r7, #4]
8022: 6878 ldr r0, [r7, #4]
8024: f7ff ffec bl 8000 8028: 6078 str r0, [r7, #4]
802a: bf00 nop
802c: 3708 adds r7, #8
802e: 46bd mov sp, r7
8030: bd80 pop
8032: bf00 nop
~
下面的文章以hello.s來分析apcs,未完待續! 學習筆記 雜湊學習筆記
hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...
學習筆記 CentOS 學習筆記01
簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...
筆記 spring cloud 學習筆記
1 spring cloud 是什麼 spring cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具 例如配置管理,服務發現,斷路器,智慧型路由,微 控制匯流排 分布式系統的協調導致了樣板模式,使用spring cloud開發人員可以快速地支援實現這些模式的服務和應用程式。他們將在任...