Linux 組合語言開發

2021-04-13 00:37:51 字數 691 閱讀 9671

組合語言的優點是速度快,可以直接對硬體進行操作,這對諸如圖形處理等關鍵應用是非常重要的。linux 是乙個用 c 語言開發的作業系統,這使得很多程式設計師開始忘記在 linux 中還可以直接使用彙編這一底層語言來優化程式的效能。本文為那些在linux 平台上編寫彙編**的程式設計師提供指南,介紹 linux 組合語言的語法格式和開發工具,並輔以具體的例子講述如何開發實用的linux 匯程式設計序。

一、簡介

作為最基本的程式語言之一,組合語言雖然應用的範圍不算很廣,但重要性卻勿庸置疑,因為它能夠完成許多其它語言所無法完成的功能。就拿 linux 核心來講,雖然絕大部分**是用 c 語言編寫的,但仍然不可避免地在某些關鍵地方使用了彙編**,其中主要是在 linux 的啟動部分。由於這部分**與硬體的關係非常密切,即使是 c 語言也會有些力不從心,而組合語言則能夠很好揚長避短,最大限度地發揮硬體的效能。

大多數情況下 linux 程式設計師不需要使用組合語言,因為即便是硬體驅動這樣的底層程式在 linux 作業系統中也可以用完全用 c 語言來實現,再加上 gcc 這一優秀的編譯器目前已經能夠對最終生成的**進行很好的優化,的確有足夠的理由讓我們可以暫時將組合語言拋在一邊了。但實現情況是 linux 程式設計師有時還是需要使用彙編,或者不得不使用彙編,理由很簡單:精簡、高效和 libc 無關性。假設要移植 linux 到某一特定的嵌入式硬體環境下,首先必然面臨如何減少系統大小、提高執行效率等問題,此時或許只有組合語言能幫上忙了。

組合語言開發

1.處理器指令的運算元 表示參與操作物件 具體的常量 儲存在暫存器中的資料 儲存在儲存器的變數 逗號前常是目的運算元,逗號後常是源運算元 mov eax,offset msg 2.偽指令的引數 常量 變數名 表示式等 可以有多個,引數之間用逗號分隔 msg byte hello,assembly 1...

Linux 組合語言開發指南

組合語言的優點是速度快,可以直接對硬體進行操作,這對諸如圖形處理等關鍵應用是非常重要的。linux 是乙個用 c 語言開發的作業系統,這使得很多程式設計師開始忘記在 linux 中還可以直接使用彙編這一底層語言來優化程式的效能。本文為那些在linux 平台上編寫彙編 的程式設計師提供指南,介紹 li...

組合語言 AT T組合語言

這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...