Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GNU AS簡介
Search
Wen_Liao
June 28, 2015
Technology
0
1.2k
GNU AS簡介
Gnu AS簡介,歡迎debug
Wen_Liao
June 28, 2015
Tweet
Share
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.3k
Hello world在那邊?背景說明 0
wen_liao
0
760
A successful Git branching model 導讀
wen_liao
0
690
GNU ld的linker script簡介
wen_liao
0
1.3k
Trace 程式碼之皮
wen_liao
0
910
淺談Debian套件打包
wen_liao
0
630
Other Decks in Technology
See All in Technology
TypeScript×CASLでつくるSaaSの認可 / Authz with CASL
saka2jp
2
210
AI 時代のデータ戦略
na0
8
3.1k
AI/MLのマルチテナント基盤を支えるコンテナ技術
pfn
PRO
4
640
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
39
21k
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
260
mablでリグレッションテストをデイリー実行するまで #mablExperience
bengo4com
0
460
MCP・A2A概要 〜Google Cloudで構築するなら〜
shukob
0
120
シンプルを極める。アンチパターンなDB設計の本質
facilo_inc
1
940
Multimodal AI Driving Solutions to Societal Challenges
keio_smilab
PRO
1
110
DGX SparkでローカルLLMをLangChainで動かした話
ruzia
1
240
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
21k
Bakuraku Engineering Team Deck
layerx
PRO
10
3.1k
Featured
See All Featured
A Tale of Four Properties
chriscoyier
162
23k
The Language of Interfaces
destraynor
162
25k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
690
The Invisible Side of Design
smashingmag
302
51k
How STYLIGHT went responsive
nonsquared
100
5.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.1k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How to Ace a Technical Interview
jacobian
280
24k
Documentation Writing (for coders)
carmenintech
76
5.2k
Building Adaptive Systems
keathley
44
2.9k
How GitHub (no longer) Works
holman
316
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
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+ 參數