Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GNU AS簡介
Search
Wen_Liao
June 28, 2015
Technology
1.2k
0
Share
GNU AS簡介
Gnu AS簡介,歡迎debug
Wen_Liao
June 28, 2015
More Decks by Wen_Liao
See All by Wen_Liao
COSCUP-2020-Linux 軟體組裝工和他的工具們
wen_liao
2
1.5k
開放街圖 自助旅行的好幫手
wen_liao
0
1.3k
UPnP 1.0 簡介
wen_liao
0
1.1k
自由軟體和 Richard Stallman
wen_liao
0
2.4k
Hello world在那邊?背景說明 0
wen_liao
0
780
A successful Git branching model 導讀
wen_liao
0
710
GNU ld的linker script簡介
wen_liao
0
1.4k
Trace 程式碼之皮
wen_liao
0
920
淺談Debian套件打包
wen_liao
0
660
Other Decks in Technology
See All in Technology
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
300
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
17k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
qa
0
570
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
180
MIX AUDIO EN BROADCAST
ralpherick
0
140
私がよく使うMCPサーバー3選と社内で安全に活用する方法
kintotechdev
0
150
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
130
Move Fast and Break Things: 10 in 20
ramimac
0
110
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.3k
自分をひらくと次のチャレンジの敷居が下がる
sudoakiy
4
1.3k
Amazon Qはアマコネで頑張っています〜 Amazon Q in Connectについて〜
yama3133
1
170
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
290
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
470
4 Signs Your Business is Dying
shpigford
187
22k
Producing Creativity
orderedlist
PRO
348
40k
Side Projects
sachag
455
43k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
91
The SEO Collaboration Effect
kristinabergwall1
0
410
Marketing to machines
jonoalderson
1
5.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
300
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
300
Transcript
Wen Liao GNU AS 簡介 台南市,虎尾寮
Disclaimer 投影片資料為作者整理資料及個人意見,沒有經 過嚴謹確認,請讀者自行斟酌
目標 介紹GNU AS以及binutils的用法
測試環境:Guest OS
測試環境:Qemu
關於GNU AS • 簡稱gas,或是直接as • 組合語言是也 ◦ 把組合語言轉成binary的object file
gas原始碼組成 • Symbol ◦ label也是一個symbol • directive ◦ .開頭的字 ◦
有些通用,有些和CPU平台相關 • Expression • Instruction ◦ 最後會轉成機械碼的東西
今天不會提到的 • 巨集 • 條件式directive • 除錯相關directive • 硬體架構相關
還記得linker script嘛? • Sections ◦ .text ◦ .bss ◦ .data
◦ .rodata ◦ … • 進入點 • 這些全部要自行處理
還記得ABI嘛? • 一樣要自己處理 ◦ Call convention ◦ Frame pointer ◦
Call stack
在組合語言中一切自己來 • printf?沒這東西 • 開檔案?寫東西,請愛用system call
兩光的Hello World directives
兩光的Hello World section
兩光的Hello World symbol
兩光的Hello World system call r0 = write(1, hello_str, hello_len) exit(r0)
兩光的Hello World expression
上面是爛程式碼示範 • 好的程式碼示範 ( 感謝Scott Tasi大大)
回家作業:九九乘法表 • 檔案結構 ◦ Makefile ◦ main.S ◦ multi_table.S •
執行 • nm 觀察 • objdump 反組譯比對。看Symbol • gdb ◦ Hint ▪ --gstabs+ 參數