精選分類 書庫 完本 排行 原創專區
欣可小說 > 曆史 > 程式設計語言處理係統 > 組合語言

程式設計語言處理係統 組合語言

作者:池昌海 分類:曆史 更新時間:2026-04-29 09:20:01

{

\"code\": 200,

\"title\": \"\",

\"content\": \"組合語言(AssemblyLanguage)是麵向機器的程式設計語言。在彙編語閤中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進製碼,就把機器語言變成了組合語言。於是組合語言亦稱為符號語言。使用組合語言編寫的程式,機器不能直接識彆,要由一種程式將組合語言翻譯成機器語言,這種起翻譯作用的程式叫彙程式設計序,彙程式設計序是係統軟件中語言處理係統軟件。彙程式設計序把組合語言翻譯成機器語言的過程稱為彙編。中國著名計算機科學教育家王爽寫過一本名叫《組合語言》的書。\\n\\n組合語言是一種功能很強的程式設計語言,也是利用計算機所有硬體特性並能直接控製硬體的語言。彙編語\\n\\n組合語言\\n\\n言,作為一門語\\n\\n組合語言言,對應於高級語言的編譯器,需要一個“彙編器”來把彙編\\n\\n語言原檔案彙編成機器可執行的代碼。高級的彙編器如MA**,TA**等等為我們寫彙程式設計序提供了很多類似於高級語言的特征,比如結構化、抽象等。在這樣的環境中編寫的彙程式設計序,有很大一部分是麵向彙編器的偽指令,已經類同於高級語言。現在的彙編環境已經如此高級,即使全部用組合語言來編寫windows的應用程式也是可行的,但這不是組合語言的長處。組合語言的長處在於編寫高效且需要對機器硬體精確控製的程式。\\n\\n大多數情況下Linux程式員不需要使用組合語言,因為即便是硬體驅動這樣的底層程式在Linux操作係統中也可以完全用C語言來實現,再加上GCC這一優秀的編譯器目前已經能夠對最終生成的代碼進行很好的優化,的確有足夠的理由讓我們可以暫時將組合語言拋在一邊了。但實際情況是Linux程式員有時還是需要使用彙編,或者不得不使用彙編,理由很簡單:精簡、高效和libc無關性。假設要移植Linux到某一特定的嵌入式硬體環境下,首先必然麵臨如何減少係統大小、提高執行效率等問題,此時或許隻有組合語言能幫上忙了。\\n\\n優點\\n\\n組合語言直接同計算機的底層軟件甚至硬體進行互動,它具有如下一些優點:\\n\\n二進製碼\\n\\n二進製碼(1)能夠直接訪問與硬體相關的存儲器或I\\/O;\\n\\n(2)能夠不受編譯器的限製,對生成的二進製代碼進行完全的控製;\\n\\n(3)能夠對關鍵代碼進行更準確的控製,避免因線程共同訪問或者硬體設備共享引起的死鎖;\\n\\n(4)能夠根據特定的應用對代碼做最佳的優化,提高運行速度;\\n\\n(5)能夠最大限度地發揮硬體的功能。\\n\\n缺點\\n\\n同時還應該認識到,組合語言是一種層次非常低的語言,它僅僅高於直接手工編寫二進製的機器指令碼,因此不可避免地存在一些缺點:\\n\\n(1)編寫的代碼非常難懂,不好維護;\\n\\n(2)很容易產生bug,難於調試;\\n\\n(3)隻能針對特定的體繫結構和處理器進行優化;\\n\\n(4)開發效率很低,時間長且單調。\\n\\n特點\\n\\n組合語言比機器語言易於讀寫、調試和修改,同時具有機器語言全部優點。但在編寫複雜程式時,相對高級語言代碼量較大,而且組合語言依賴於具體的處理器體繫結構,不能通用,因此不能直接在不同處理器體繫結構之間移植。\\n\\n組合語言的特點:\\n\\n1.麵向機器的低級語言,通常是為特定的計算機或係列計算機專門設計的。\\n\\n2.保持了機器語言的優點,具有直接和簡捷的特點。\\n\\n3.可有效地訪問、控製計算機的各種硬體設備,如磁盤、存儲器、CPU、I\\/O等。\\n\\n4.目標代碼簡短,占用內存少,執行速度快,是高效的程式設計語言。\\n\\n5.經常與高級語言配合使用,應用十分廣泛。\\n\\n對於不同型號的計算機,有著不同的結構的組合語言\\n\\n組合語言由於采用了助記符號來編寫程式,比用機器語言的二進製代碼編程要方便些,在一定程度上簡化了編程過程。組合語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用組合語言能麵向機器並較好地發揮機器的特性,得到質量較高的程式。\\n\\n組合語言是麵向具體機型的,它離不開具體計算機的指令係統,因此,對於不同型號的計算機,有著不同的結構的組合語言,而且,對於同一問題所編製的組合語言程式在不同種類的計算機間是互不相通的。\\n\\n組合語言中由於使用了助記符號,用組合語言編製的程式輸入計算機,計算機不能象用機器語言編寫的程式一樣直接識彆和執行,必須通過預先放入計算機的\\\"彙程式設計序\\\"中進行加工和翻譯,才能變成能夠被計算機直接識彆和處理的二進製代碼程式。用組合語言等非機器語言書寫好的符號程式稱為源程式,運行時彙程式設計序要將源程式翻譯成目標程式。目標程式是機器語言程式,當它被安置在內存的預定位置上,就能被計算機的CPU處理和執行。\\n\\n組合語言像機器指令一樣,是硬體操作的控製資訊,因而仍然是麵向機器的語言,使用起來還是比較繁瑣費時,通用性也差。但是,組合語言用來編製係統軟件和過程控製軟件,其目標程式占用內存空間少,運行速度快,有著高級語言不可替代的用途。\\n\\n應用\\n\\n組合語言作為最基本的編程語言之一,組合語言雖然應用的範圍不算很廣,但重要性卻勿庸置疑,因為它能\\n\\n組合語言程式設計\\n\\n夠完成許多其它\\n\\n組合語言程式設計語言所無法完成的功能。就拿Linux內核來講,雖然絕大部分代碼是用\\n\\nC語言編寫的,但仍然不可避免地在某些關鍵地方使用了彙編代碼,其中主要是在Linux的啟動部分。由於這部分代碼與硬體的關係非常密切,即使是C語言也會有些力不從心,而組合語言則能夠很好揚長避短,最大限度地發揮硬體的效能。\\n\\n1.70%以上的係統軟件是用組合語言編寫的。\\n\\n2.某些快速處理、位處理、訪問硬體設備等高效程式是用組合語言編寫的。\\n\\n3.某些高級繪圖程式、視頻遊戲程式是用組合語言編寫的。\\n\\n組合語言是理解整個計算機係統的最佳起點和最有效途徑,人們經常認為組合語言的應用範圍很小,而忽視它的重要性。其實組合語言對每一個希望學習計算機科學與技術的人來說都是非常重要的,是不能不學習的語言。所有可編程計算機都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。所有程式,不論用何種語言編製,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實現。機器的邏輯功能,軟件係統功能構築其上,硬體係統功能運行於下。組合語言直接描述機器指令,比機器指令容易記憶和理解。通過學習和使用組合語言,能夠感知、體會、理解機器的邏輯功能,向上為理解各種軟件係統的原理,打下技術理論基礎;向下為掌握硬體係統的原理,打下實踐應用基礎。學習組合語言,向上可以理解軟件,向下能夠感知硬體,是我們理解整個計算機係統的最佳起點。\\n\\n圖書\\n\\n基本資訊\\n\\n作 者:王爽\\n\\n出版社:清華大學出版社\\n\\n出版時間:2008\\n\\nISBN:9787302172284\\n\\n頁 數:337\\n\\n開本:16\\n\\n編輯推薦\\n\\n本書自出版以來,受到業內專家和高校教師、廣大計算機專業學生和計算機科學與技術學習者的熱烈歡迎和高度評價。許多高校用作教材,教學效果很好。很多人在網絡上將其與國外同專業名著相併列向廣大讀者推薦。事實上,本書已成了推動我國計算機科學與技術教育發展的一部重要著作。本書出版4年連續印刷了8次,成為本專業學生和廣大學習者的必讀書。\\n\\n本社為滿足廣大讀者的需求,特請王爽老師對原書進行修訂補充,出版第2版,以饗讀者。\\n\\n本書特色:\\n\\n·采用全新的結構對課程內容進行了組織,對知識進行最小化分割,為讀者構造了循序漸進的學習線索\\n\\n·在深入本質的層麵上對組合語言進行講解\\n\\n·對關鍵環節進行深入的剖析\\n\\n內容簡介\\n\\n《組合語言(第2版)》是各種CPU提供的機器指令的助記符的集合,人們可以用組合語言直接控製硬體係統進行工作。組合語言是很多相關課程(如數據結構、操作係統、微機原理等)的重要基礎。為了更好地引導、幫助讀者學習組合語言,作者以循序漸進的思想精心創作了這本書。本書具有如下特點:采用了全新的結構對課程的內容進行組織,對知識進行最小化分割,為讀者構造了循序漸進的學習線索;在深入本質的層麵上對組合語言進行講解;對關鍵環節進行深入的剖析。\\n\\n《組合語言(第2版)》可用作大學計算機專業本科生的彙編教材及希望深入學習計算機科學的讀者的自學教材。\\n\\n作者簡介\\n\\n王爽,著名計算機科學教育家,哲學家。1975年出生於黑龍江省齊齊哈爾市。1997年畢業於寧夏大學計算機及應用專業。2007年開創了可行性哲學理論體係。自1999年以來,陸續提出並實踐了知識遮蔽、線索化、多元環境等一係列對高等專業人才培養具有重要意義的教學與教育思想。多年以來一直積極致力於推動教育發展的各項事業,同時在高等教育、計算機科學與技術、IT產業等諸多領域都有所成就。\\n\\n目錄\\n\\n第1章基礎知識1\\n\\n1.1機器語言1\\n\\n1.2組合語言的產生3\\n\\n1.3組合語言的組成3\\n\\n1.4存儲器4\\n\\n1.5指令和數據4\\n\\n1.6存儲單元4\\n\\n1.7CPU對存儲器的讀寫5\\n\\n1.8地址總線6\\n\\n1.9數據總線7\\n\\n1.10控製總線8\\n\\n1.11內存地址空間(概述)9\\n\\n1.12主機板9\\n\\n1.13介麵卡9\\n\\n1.14各類存儲器晶片10\\n\\n1.15內存地址空間11\\n\\n第2章暫存器14\\n\\n第3章暫存器(內存訪問)47\\n\\n第4章第一個程式76\\n\\n第5章[BX]和loop指令95\\n\\n第6章包含多個段的程式123\\n\\n第7章更靈活的定位內存地址的方法138\\n\\n第8章數據處理的兩個基本問題161\\n\\n第9章轉移指令的原理175\\n\\n第10章CALL和RET指令190\\n\\n第11章標誌暫存器213\\n\\n第12章內中斷236\\n\\n第13章int指令252\\n\\n第14章265\\n\\n第15章外中斷272\\n\\n第16章直接定址表287\\n\\n第17章使用BIOS進行鍵盤輸入和磁盤讀寫300\\n\\n實驗17編寫包含多個功能子程式的中斷例程310\\n\\n課程設計2312\\n\\n綜合研究314\\n\\n研究試驗1搭建一個精簡的C語言開發環境315\\n\\n研究試驗2使用暫存器318\\n\\n研究試驗3使用內存空間319\\n\\n研究試驗4不用main函數編程322\\n\\n研究試驗5函數如何接收不定數量的參數326\\n\\n附註327\\n\\n附註1Intel係列微處理器的3種工作模式327\\n\\n附註2補碼329\\n\\n附註3彙編編譯器(masm.exe)對jmp的相關處理330\\n\\n附註4用棧傳遞參數333\\n\\n附註5公式證明336\\n\\n參考文獻287\\n\\n術語表289\\n\\n彙編破解\\n\\n我這裡放上KOBE的彙編教程,內容較簡單,想在破解方麵有一定發展的最好是買一本彙編書來學習。現在計算機畢業的學生,彙編都學過,我曾碰到一網友說學過彙編,是8088等,說太老了用不上,我現在告訴大家,足夠了,目前硬體都相容X86係統,明白嗎?再多複雜的程式,最終都需X86指令執行,你就可以跟蹤它,看到的都是彙編代碼。你並不需多高的水平,隻要能看得懂就行了,買來的彙編書隻要看看前兩章就可以了,瞭解各種指令的含義,瞭解暫存器、數據在內存存儲順序等概念。但你如想有所作為,還是在彙編上花點時間吧。\\n\\n附:KOBE的彙編教程(僅供參考)\\n\\nKOBE的彙編教程(一)\\n\\nSUPERHIT大家好!國慶節閱兵真夠COOL的,做為中國的CRACKER感覺真不錯,。。。comeoncomeon給我感覺。。。在CRACK的過程中大家(初學者)一定感到功力不夠。在網絡上大家可以輕易找到MANYCRACKERSWRITE的文章,有大陸的(象我們的),也有台灣的(YHQ,俞煌男)。但卻極少有彙編的訊息,也許是彆人懶得去寫吧。我雖極懶,卻不忍看到初學者們東碰西撞(象我當初一樣)。於是就有了。。。。。。。。\\n\\n(一)彙編命令戲說我們這裡彙編的BOOK大多都是8086,8088時的指令,不過問題不大。。。。。愛就一個字,我隻說一次。。。。。。listencarefully:\\n\\nMOV不用多說了ESP:MOVAX,CXMOVBX,AX\\n\\nPUSH推入棧(STACK)ESP:PUSHAX\\n\\nPOP出棧ESP:POPCX\\n\\nXCHG交換ESP:XCHGAX,BX\\n\\nIN、OUT與PORT有關的IN\\/OUT\\n\\nXLAT查表\\n\\nLEA段內偏移量。ESP:LEAAX,AREA1=MOVAX,OFFSETAREA1\\n\\nLAHF、SAHF與棋標有關的暫存器AH\\n\\nPUSHF、POPF將棋標入\\/出棧\\n\\nADDESPADDAX,CX(AX=AX CX)\\n\\nADC加入棋標C的ADD\\n\\nINCESPINCAX(AX=AX 1)\\n\\nAAA加法校正\\n\\nSUB、SBB減法\\n\\nDECESP:DECAX(AX=AX-1)\\n\\nNEG去補,\\n\\nCMPESP:CMPAX,CX將AX-CX的結果送之FLAGCA、S等。\\n\\n通常與JNZ、JZ連用。\\n\\nMUL、IMUL乘\\n\\nDIV、IDIV除\\n\\nSHR、SAR、SHL算術、邏輯位移R=RIGHTL=LEFT\\n\\nOR、XOR、AND邏輯運算ESP:XORAX,AX(AX=0)\\n\\n(未完待續)\\n\\n不知看懂了冇有,各位初學者,以後我會POSTMORE的。下次也許會POSTDEBUG的用法詳解,或SOFTICE咦,怎麼冇人要求。嗨,算了,。。。。\\n\\n本文檔資料歡迎轉載。嘻。。。。。\\n\\nkobe的教學檔(二)\\n\\n暫存器講座KOBE的數學檔(二)\\n\\nSUPERHITS各位好,在下又想多寒暄幾句,但在家的TIME不多了,還是趕緊POST幾篇上來,以壯大BLACK**ITH的CHINACRACKER吧。咦,XXX一怎麼又肥了一圈,是不是吃了什麼?什麼,INTELPROSESSOR,難怪.......不,不,彆走,接下來切入正題。\\n\\n(二)80386、80486與8086、8088的區彆,是不是有點跑題,不過還好了,冇有我們線性代數老師跑得遠了。\\n\\n下麵我們來熟悉一下8086、8088的暫存器\\n\\n(1)通用暫存器:AX、BX、CX、DX、SI、DI、SP、SP當然一種暫存器都有自己的特殊用途,如:CX做為記數器;AX很通用,尤其在調用中斷時。\\n\\n(2)標旗:A、C、S、O......太多了(歇一歇)\\n\\n(3)暫存器:CS、SS、DS、ES80386、80486中又對(1)、(2)進行了EXTEND成了EAX,ESX......但然還加入了係統地址暫存器GDTR......調試暫存器DR0......(說到DR0CIH病毒就有用這個暫存器來置感染標誌喔!.....又跑題了)。還有控製暫存器CR0......測試暫存器TR6......\\n\\n在學CRACK時最好對386的實模式,保護模式及虛擬86模式時對暫存器占用所瞭解。由於計算機的進步AX(16位)---->EAX(32位)許多相應的計算也變了。\\n\\n組合語言(第2版)\\n\\n圖書資訊\\n\\n作者:王爽\\n\\n出版社:清華大學出版社;第2版(2008年4月2日)\\n\\n平裝:337頁\\n\\n正文語種:漢語\\n\\n開本:16\\n\\nISBN:9787302172284\\n\\n條形碼:9787302172284\\n\\n產品尺寸及重量:25.6x18.2x1.6cm;540g\\n\\n內容簡介\\n\\n《組合語言(第2版)》是各種CPU提供的機器指令的助記符的集合,人們可以用組合語言直接控製硬體係統進行工作。組合語言是很多相關課程(如數據結構、操作係統、微機原理等)的重要基礎。為了更好地引導、幫助讀者學習組合語言,作者以循序漸進的思想精心創作了《組合語言(第2版)》。《組合語言(第2版)》具有如下特點:采用了全新的結構對課程的內容進行組織,對知識進行最小化分割,為讀者構造了循序漸進的學習線索;在深入本質的層麵上對組合語言進行講解;對關鍵環節進行深入的剖析。\\n\\n編輯推薦\\n\\n《組合語言(第2版)》可用作大學計算機專業本科生的彙編教材及希望深入學習計算機科學的讀者的自學教材。\\n\\n《組合語言(第2版)》自出版以來,受到業內專家和高校教師、廣大計算機專業學生和計算機科學與技術學習者的熱烈歡迎和高度評價。許多高校用作教材,教學效果很好。很多人在網絡上將其與國外同專業名著相併列向廣大讀者推薦。事實上,《組合語言(第2版)》已成了推動我國計算機科學與技術教育發展的一部重要著作。《組合語言(第2版)》出版4年連續印刷了8次,成為本專業學生和廣大學習者的必讀書。\\n\\n本社為滿足廣大讀者的需求,特請王爽老師對原書進行修訂補充,出版第2版,以饗讀者。\\n\\n作者簡介\\n\\n王爽,著名計算機科學教育家,哲學家。1975年出生於黑龍江省齊齊哈爾市。1997年畢業於寧夏大學計算機及應用專業。2007年開創了可行性哲學理論體係。自1999年以來,陸續提出並實踐了知識遮蔽、線索化、多元環境等一係列對高等專業人才培養具有重要意義的教學與教育思想。多年以來一直積極致力於推動教育發展的各項事業,同時在高等教育、計算機科學與技術、IT產業等諸多領域都有所成就。\\n\\n目錄\\n\\n第1章 基礎知識\\n\\n1.1 機器語言\\n\\n1.2 組合語言的產生\\n\\n1.3 組合語言的組成\\n\\n1.4 存儲器\\n\\n1.5 指令和數據\\n\\n1.6 存儲單元\\n\\n1.7 CPU對存儲器的讀寫\\n\\n1.8 地址總線\\n\\n1.9 數據總線\\n\\n1.10 控製總線\\n\\n1.11 內存地址空間(概述)\\n\\n1.12 主機板\\n\\n1.13 介麵卡\\n\\n1.14 各類存儲器晶片\\n\\n1.15 內存地址空間\\n\\n第2章 暫存器\\n\\n2.1 通用暫存器\\n\\n2.2 字在暫存器中的存儲\\n\\n2.3 幾條彙編指令\\n\\n2.4 實體地址\\n\\n2.5 16位結構的CPU\\n\\n2.6 8086cPu給出實體地址的方法\\n\\n2.7“段地址xl6 偏移地址=實體地址”的本質含義\\n\\n2.8 段的概念\\n\\n2.9 段暫存器\\n\\n2.10 CS和IP\\n\\n2.11 修改CS、IP的指令\\n\\n2.12 代碼段\\n\\n實驗1 檢視CPU和內存,用機器指令和彙編指令編程\\n\\n第3章 暫存器(內存訪問)\\n\\n3.1內存中字的存儲\\n\\n3.2 DS31:1[address]\\n\\n3.3 字的傳送\\n\\n3.4 ITIOV、add、sub指令\\n\\n3.5 數據段\\n\\n3.6 棧\\n\\n3.7 CPU提供的棧機製\\n\\n3.8 棧頂超界的問題\\n\\n3.9 puSh、pop指令\\n\\n3.10 棧段\\n\\n實驗2 用機器指令和彙編指令編程\\n\\n第4章 第一個程式\\n\\n4.1 一個源程式從寫出到執行的過程\\n\\n4.2 源程式\\n\\n4.3 編輯源程式\\n\\n4.4 編譯\\n\\n4.5 連接\\n\\n4.6以簡化的方式進行編譯和連接\\n\\n4.71.exe的執行\\n\\n4.8 誰將可執行檔案中的程式裝載進入內存並使它運行?\\n\\n4.9 程式執行過程的跟蹤\\n\\n實驗3 編程、編譯、連接、跟蹤\\n\\n第5章 【BX】和loop指令\\n\\n5.1【BX】\\n\\n5.2 Loop指令\\n\\n5.3 在Debu9中跟蹤用loop指令實現酮循環程式\\n\\n5.4 Debu9和彙編編譯器masm對指令的不同處理\\n\\n5.5 loop和【bx】的聯合應用\\n\\n……\\n\\n綜合研究\\n\\n附註\\n\\n文摘\\n\\n第1章 基礎知識\\n\\n組合語言是直接在硬體之上工作的編程語言,我們首先要瞭解硬體係統的結構,纔能有效地應用組合語言對其編程。在本章中,我們對硬體係統結構的問題進行一部分的探討,以使後續的課程可在一個好的基礎上進行。當課程進行到需要補充新的基礎知識(關於編程結構或其他的)的時候,再對相關的基礎知識進行介紹和探討。\\n\\n\"

}

目錄
設置
設置
閱讀主題
字體風格
雅黑 宋體 楷書 卡通
字體風格
適中 偏大 超大
儲存設置
恢複默認
手機
手機閱讀
掃碼獲取鏈接,使用瀏覽器打開
書架同步,隨時隨地,手機閱讀
收藏
聽書
聽書
發聲
男聲 女生 逍遙 軟萌
語速
適中 超快
音量
適中
開始播放
推薦
反饋
章節報錯
當前章節
報錯內容
提交
加入收藏 < 上一章 章節列表 下一章 > 錯誤舉報