匯編語(yǔ)言程序設(shè)計(jì)

出版時(shí)間:2006-1  出版社:機(jī)械工業(yè)出版社  作者:布魯姆  頁(yè)數(shù):409  
Tag標(biāo)簽:無(wú)  

前言

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

內(nèi)容概要

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

作者簡(jiǎn)介

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

書籍目錄

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

編輯推薦

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

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    匯編語(yǔ)言程序設(shè)計(jì) PDF格式下載


用戶評(píng)論 (總計(jì)33條)

 
 

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

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

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7