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
0
1.1k
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.4k
開放街圖 自助旅行的好幫手
wen_liao
0
1.2k
UPnP 1.0 簡介
wen_liao
0
1k
自由軟體和 Richard Stallman
wen_liao
0
2.2k
Hello world在那邊?背景說明 0
wen_liao
0
690
A successful Git branching model 導讀
wen_liao
0
630
GNU ld的linker script簡介
wen_liao
0
1k
Trace 程式碼之皮
wen_liao
0
840
淺談Debian套件打包
wen_liao
0
470
Other Decks in Technology
See All in Technology
Terraformあれやこれ/terraform-this-and-that
emiki
4
450
エンタープライズ環境下での Active Directory の運用 TIPS
tamaiyutaro
1
1.6k
日本におけるデータエンジニアリングのこれまでとこれから
foursue
11
2.4k
入社後初めてのタスクでk8sアップグレードした話.pdf
kkato1
1
380
KubeCon EU 2024 Recap “Kubernetes Policy Time Machine: Where to Next?”
ryysud
0
110
株式会社EventHub・エンジニア採用資料
eventhub
0
1.9k
コードを書く隙間を見つけて生きていく技術/Findy 思考の現在地
fujiwara3
24
5.2k
巨大なテーブルのテーブル定義を無停止で安全に誰でも変更できるようにする / Table-definitions-for-huge-tables-can-be-modified-by-anyone-safely-and-non-disruptively
freee
1
740
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
220
検証を通して見えてきたTiDBの性能特性
lycorptech_jp
PRO
6
3.4k
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
150
テストプロセスで大事にしていること #jasstnano
makky_tyuyan
0
130
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
GitHub's CSS Performance
jonrohan
1023
450k
The Illustrated Children's Guide to Kubernetes
chrisshort
29
46k
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
Product Roadmaps are Hard
iamctodd
43
9.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
36
2.5k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
Web Components: a chance to create the future
zenorocha
305
41k
Designing for Performance
lara
601
67k
A designer walks into a library…
pauljervisheath
199
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
186
16k
The Invisible Customer
myddelton
114
12k
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+ 參數