匯編語言程序設計

出版時間:2006-1  出版社:機械工業(yè)出版社  作者:布魯姆  頁數(shù):409  
Tag標簽:無  

前言

  在目前正在使用的程序設計語言之中,匯編語言是被誤解得最深的一種。當提到“匯編語言”這個術語時,經(jīng)常使人聯(lián)想到低級的位移動和在長達數(shù)千頁的指令手冊中費力地查找正確的指令格式。隨著各種出色的高級語言開發(fā)工具的快速發(fā)展,在各種程序設計新聞組中“匯編語言程序設計已經(jīng)死亡了”這種評論并不少見。但是,匯編語言程序設計遠沒有到死亡的時候。每種高級語言程序在能夠連接為可執(zhí)行程序之前都必須被編譯為匯編語言程序。對于高級語言程序設計者來說,了解編譯器如何生成匯編語言代碼很有用處,這表現(xiàn)在使用匯編語言直接編寫例程和了解編譯器如何把高級語言轉換為匯編語言方面。

內容概要

每種高級語言程序在連接為可執(zhí)行程序之前,都必須被編譯為匯編語言程序,因此對于高級語言程序設計者來說,了解編譯器如何生成匯編語言代碼十分有用。    本書分為三部分。第一部分講解匯編語言程序設計環(huán)境基礎,第二部分研究匯編語言程序設計,最后一部分講解高級匯編語言技術。本書的主要目的是向使用高級語言的程序員講解編譯器如何從C和C++程序創(chuàng)建匯編語言例程,以及編程人員應如何掌握生成的匯編語言代碼,調整匯編語言例程以提高應用程序的性能。    本書適合有一定編程經(jīng)驗的開發(fā)人員參考。

作者簡介

Richard Blum 畢業(yè)于美國普度大學電氣工程專業(yè),在美國一家政府組織工作了15年以上。在此期間,他使用過各種編程語言(C、C++、Java和Microsoft VB .NET以及C#)編寫實用程序,因此他發(fā)現(xiàn)一個非常有價值的事實:通過研究編譯器生成的匯編語言代碼及使用匯編語言例程,可

書籍目錄

第一部分  匯編語言程序設計環(huán)境基礎 第1章  什么是匯編語言          1.1  處理器指令           1.1.1  指令碼處理           1.1.2  指令碼格式          1.2  高級語言           1.2.1  高級語言的種類           1.2.2  高級語言的特性          1.3  匯編語言           1.3.1  操作碼助記符           1.3.2  定義數(shù)據(jù)           1.3.3  命令          1.4  小結         第2章  IA-32平臺          2.1  IA-32處理器的核心部分           2.1.1  控制單元           2.1.2  執(zhí)行單元           2.1.3  寄存器           2.1.4  標志          2.2  IA-32的高級特性           2.2.1  x87浮點單元           2.2.2  多媒體擴展           2.2.3  流化SIMD擴展           2.2.4  超線程          2.3  IA-32處理器系列           2.3.1  Intel處理器           2.3.2  非Intel處理器          2.4  小結         第3章  相關的工具          3.1  開發(fā)工具           3.1.1  匯編器           3.1.2  連接器           3.1.3  調試器           3.1.4  編譯器           3.1.5  目標代碼反匯編器           3.1.6  簡檔器          3.2  GNU匯編器           3.2.1  安裝匯編器           3.2.2  使用匯編器           3.2.3  關于操作碼語法          3.3  GNU連接器          3.4  GNU編譯器           3.4.1  下載和安裝gcc           3.4.2  使用gcc          3.5  GNU調試器程序           3.5.1  下載和安裝gdb           3.5.2  使用gdb          3.6  KDE調試器           3.6.1  下載和安裝kdbg           3.6.2  使用kdbg          3.7  GNU objdump程序           3.7.1  使用objdump           3.7.2  objdump范例          3.8  GNU簡檔器程序           3.8.1  使用簡檔器           3.8.2  簡檔范例          3.9  完整的匯編開發(fā)系統(tǒng)           3.9.1  Linux基礎           3.9.2  下載和運行MEPIS           3.9.3  新的開發(fā)系統(tǒng)          3.10  小結         第4章  匯編語言程序范例          4.1  程序的組成           4.1.1  定義段           4.1.2  定義起始點          4.2  創(chuàng)建簡單程序           4.2.1  CPUID指令           4.2.2  范例程序           4.2.3  構建可執(zhí)行程序           4.2.4  運行可執(zhí)行程序           4.2.5  使用編譯器進行匯編          4.3  調試程序           4.4  在匯編語言中使用C庫函數(shù)           4.4.1  使用printf          4.4.2  連接C庫函數(shù)          4.5  小結        第二部分  匯編語言程序設計基礎 第5章  傳送數(shù)據(jù)         第6章  控制執(zhí)行流程         第7章  使用數(shù)字         第8章  基本數(shù)學功能         第9章  高級數(shù)學功能         第10章  處理字符串         第11章  使用函數(shù)         第12章  使用Linux系統(tǒng)調用        第三部分  高級匯編語言技術 第13章  使用內聯(lián)匯編         第14章  調用匯編庫         第15章  優(yōu)化例程         第16章  使用文件         第17章  使用高級IA-32特性

編輯推薦

  每種高級語言(比如C和C++)在連接為可執(zhí)行程序之前都會被編譯器轉換成匯編語言。本書面向使用高級語言的開發(fā)人員,講解如何查看和解釋編譯器生成的匯編語言代碼,了解它們是如何創(chuàng)建的,從而可以修改編譯器生成的代碼或創(chuàng)建自己的匯編語言例程。本書揭示如何使程序中的函數(shù)更快更高效的內幕,以及提高應用程序性能的方法?! ”緯饕獌热荩骸  ?查看高級語言程序生成的匯編語言代碼的好處;  ● 如何為Linux奔騰處理器環(huán)境創(chuàng)建獨立的匯編語言程序;  ● 如何將高級函數(shù)和庫整合到匯編語言程序中;  ● 如何將匯編語言例程整合到C和C++應用程序中;  ● 如何在匯編語言程序中使用Linux系統(tǒng)調用;  ● 如何在應用程序中使用奔騰處理器的MMX和SSE功能。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    匯編語言程序設計 PDF格式下載


用戶評論 (總計33條)

 
 

  •   市面上匯編語言方面的書不少,但將AT&T(GNU)風格并基于Linux平臺的少之又少,精品更是罕見,我很榮幸能夠讀到這樣一本經(jīng)典中的經(jīng)典。為了證明我不是槍手,我列舉此書的如下優(yōu)點:1.無廢話,例子很貼切。這點與國內眾多匯編方面的書籍區(qū)別較大,國內的匯編書籍多半是用于高校教材的,很多都是借鑒同一本書,由于CPU在近6年來在架構上發(fā)生翻天覆地的變化,導致這些靠借鑒別人出版的書籍無法跟上節(jié)奏,就算跟上節(jié)奏也明顯看出作者實際上根本沒有深入地理解。2.結合高級語言,書中并不是“就匯編,論匯編”,可以看出,作者的確經(jīng)歷過很多軟件項目的高手,沒有10幾年的經(jīng)驗是無法做到這一點的。3.由于其基于Linux平臺,我們可以通過閱讀本書直接轉入嵌入式Linux底層方面的學習,只要再對ARM平臺和指令集稍微熟悉一下,就可以直接去研究內核的引導和Linux移植方面的東西。
  •   讀了很多intel和windows下的匯編語言的書籍,對這本介紹linux下匯編的書真是情有獨鐘?。?br /> 我覺得這是一本非常好的書。
    不僅可以開闊眼界,而且能更深入的理解匯編語言。
  •   這是我讀過的,最好學,最實用的匯編語言教程,值得一看。我非常喜歡!
  •   好書!匯編、系統(tǒng)調用、C和匯編混合應用說明得很清楚。還可以了解新的SIMD指令應用
  •   還不錯拉。適合入門,寫的很詳細,對理解linux內核里的匯編很有幫助
  •   很好 gdb的高級應用
  •   正在看,書中用的是linux開發(fā)環(huán)境.還提供很多開發(fā)工具,不錯啊.
  •   比起國內的書來說全面多了.
  •   很好的書??上б恢睕]看完過。
  •   好書,書寫的很容易懂,好書,有不少好例子,我一邊看一邊寫,進步蠻快
  •   最近學習linux內核,發(fā)現(xiàn)這本書雖名為《匯編語言程序設計》但是講解了許多l(xiāng)inux內部的實現(xiàn)機制與匯編語言的知識,是對linux程序員很用的書籍。
  •   如題,而且這本書相對于國內及相當多一部分X86匯編書籍,好太多了,說得比較容易明白,例子比較實際,而且和一些介紹X86匯編的書籍最大的不同就是這本書并不是只顧說語言,而更多地是以底層編程思想方面出發(fā)!再者這本書是以AT&T格式匯編為主,對想了解LINUX內核及嵌入式LINUX系統(tǒng)開發(fā)的人員很有好處!
  •   這本書適合初學匯編語言,又對ANSIC/C++有編程經(jīng)驗的人員閱讀,作者將會以程序員易懂的方式初步介紹x86體系下的匯編語言。
  •   本書主講匯編,并在c語言,及操作系統(tǒng)間穿梭。讓編程思想融會貫通。不錯
  •   非常不錯!我通讀了一遍,非常適合初級水評的編程人員,Linux/Unix下的。
  •   翻譯的有點差,不過還是一本不錯的書,學Linux內核的好東西!建議挑著看!
  •   看到pipeline 被翻譯成 管線。。。確實汗了一下。
  •   深度剛好,寬度適中
  •   這老頭子挺酷
  •   評價一般.現(xiàn)在關于匯編語言程序設計的書籍很多,值得一看的都是原版和翻譯過來的書但是翻譯的書大多都文不對意.這本書可以當成專業(yè)書籍看看,要找到好的匯編語言程序設計籍可能要讀上一大堆匯編語言程序設計書目了.嗚嗚
  •   如果你想用匯編來寫程序,看這本書是遠遠不夠的。

    不過對于我這個只想了解匯編的人來說,夠了。
  •   匯編啊可以看看
  •   大多數(shù)句子的邏輯結構就是英文的直譯。
    很多專業(yè)名詞不對。
    總之讓讀的人感覺磕磕絆絆一點也不爽!
  •   沒有大的驚喜
  •   可能是因為翻譯質量的問題,感覺看著不舒服。
  •   如果是英文版,這書是個好書,但到了這不良的翻譯者和不良的出版社,卻變成了爛書一本。就拿這書的83頁中的5.3節(jié)來說,簡直是亂彈琴?。。。∵@書還是第二次印刷?。。。。】戳硕家卵`人子弟呀,中國作家!鄙視翻譯者,更鄙視出版社,永遠都不會再買機械出版社的書
  •   買來有些后悔,發(fā)現(xiàn)太死板了不生動,有些難
  •      這本書我讀了大概兩遍,說來慚愧,現(xiàn)在雖然知道這本書寫的什么,可是很多細節(jié)在我現(xiàn)在不使用匯編以后有點淡忘了,但是這不妨礙我寫它的評論。
       那一年冬天,我忽然對UNIX產(chǎn)生了濃厚的興趣,開始閱讀了UNIX的設計原理,就是Bach的那本《UNIX操作系統(tǒng)設計》,這本書的寫作背景似乎還在AT&T的不準泄露UNIX源代碼的條款下進行的,所以讀者可以看到書中沒有一處UNIX源代碼的舉例,但那本書真的比UNIX的內部工作原理寫得很清楚。設計操作系統(tǒng)內核畢竟不是說干就干的事情,前期的很多準備都是必要的,知識上的就有IBM-PC,尤其是AT的架構,還有外圍各種借口芯片的了解,現(xiàn)代CPU的工作原理的理解(計算機組成原理和微型計算機是應該好好學的,可是我當時沒有重視這些,但是也不是多大的損失,從編程的興趣上出發(fā)一樣可以彌補那些知識)。此外,當然還有操作系統(tǒng)的原理的豐富知識,包括如何引導操作系統(tǒng)內核。
       這個知識是如何獲得的,我現(xiàn)在都有些忘了,但是感覺是很漫長的一個過程,需要太多的積累,我當時的想法就是從原理出發(fā),白手起家設計一個內核,其實這需要太多太多的知識。無論是Linus設計Linux內核,Bill Joy設計BSD內核,他們都是從在鉆研了操作系統(tǒng)內核源代碼以后入手的。即使AST設計Minix也是在講授了Lions的書多年以后開始的,也可以說是深諳操作系統(tǒng)源代碼的。因此設計操作系統(tǒng)最好的開始就是從讀源代碼開始。
       話題有些遠了。在寫引導程序之前顯然是要學習匯編語言,選擇開發(fā)平臺和工具的。我在微機原理課上自學了8086實模式下的編程,這個還是非常有用的,由于實模式下的匯編比較簡單,可是很好入手匯編語言的編程,推薦書自然是王爽老師的那本。開發(fā)平臺自然是類UNIX系統(tǒng)了,linux,F(xiàn)reeBSD都可以。匯編器和鏈接器分別是as和ld,而as采用的匯編格式是AT&T的,因此就需要學習這個了。后來就發(fā)現(xiàn)了這本書。
       這本書很好,講解清楚,而且例子豐富,可是僅僅是32位平臺上的編程,沒有講到實模式和保護模式這些。因此對于寫引導仍然是不夠的。后來又讀了《80x86匯編語言程序設計》,那本書當時看著很好,但是再我讀了《Programming the 80386》以后就覺得這兩本還是不能相提并論的,因此如果有誰想了解這方面的,可以直接讀后者。
  •     全面又不失重點,入于基礎出于高級。很好的總結和概括了IA-32匯編語言的重點。尤其是對C/C++于匯編的混合編程和程序優(yōu)化的內容講述極其精辟明了。顯示出來作者的深厚功底和大量經(jīng)驗。
      本書的另一特點就是,通俗易懂。對于英語不是很好的讀者也能輕松看懂英文版的。哈是不是很爽。個人覺得沒有練習題是本書的一大遺憾。希望作者在下一版中能夠加一些練習題。好讓我們鞏固一下所學。
  •     本書語言流暢,安排得當,實踐性強,不但是一本非常好的AT&T匯編教材,對unix C程序員理解下層原理也非常有幫助!
      但本書不適用于x86_64平臺,書中代碼在x86機器上匯編成可執(zhí)行程序后可在x86_64平臺上運行,但代碼卻無法直接按書中方法在x86_64下匯編成可執(zhí)行程序,因為e**的寄存器會換成r**,而且會有更多參數(shù)放進寄存器而不是棧里,這點請讀者注意!
  •     如果想學習AT&T風格的匯編的話,這本書真的很不錯。不過可惜這本書并不能完全作為參考手冊,有一些匯編指令并沒有在書中涉及到,不過這個估計得去查Intel和AMD的Developer Guide才行。
  •     不適合初學者,
      適合對C/C++有一定了解程度的讀者,
      讀起來很流暢,給幾天時間能一口讀完
      
  •   我發(fā)現(xiàn)我們的經(jīng)歷很相似啊
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7