出版時(shí)間:2009-12 出版社:東南大學(xué)出版社 作者:傅德勝,孫文靜 著 頁數(shù):318
前言
匯編語言是一種面向機(jī)器的程序設(shè)計(jì)語言。匯編語言直接映射系統(tǒng)硬件,使程序設(shè)計(jì)人員可以像使用自己的工具那樣,隨心地控制和使用計(jì)算機(jī)的基本資源,設(shè)計(jì)各種期望的軟件。同時(shí),匯編語言占用的內(nèi)存小、執(zhí)行速度快、效率高,因而是一種強(qiáng)有力的計(jì)算機(jī)語言。 在撰寫本書的過程中,筆者仔細(xì)研究了國家教育部頒發(fā)的計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的教學(xué)大綱要求,深入分析了當(dāng)前計(jì)算機(jī)技術(shù)的發(fā)展,結(jié)合自己30多年來講授該課程的體會(huì),以及筆者1999年3月出版的《宏匯編語言程序設(shè)計(jì)及應(yīng)用》、2002年修訂出版的《80X86匯編語言程序設(shè)計(jì)及應(yīng)用》兩書讀者的中肯建議,本著由淺入深、循序漸進(jìn)、考慮專業(yè)、兼顧普及、注重實(shí)用的精神,反復(fù)醞釀和推敲?! ∪珪缮?、下篇組成。上篇為理論篇,其中第一部分為預(yù)備環(huán)節(jié)(第1,2章),介紹計(jì)算機(jī)中用到的數(shù)制、碼制和CPU的結(jié)構(gòu)。第二部分為基礎(chǔ)環(huán)節(jié)(第3,4,5章),主要討論匯編語言的尋址方式、指令系統(tǒng)、偽指令、匯編語言源程序結(jié)構(gòu)和匯編語言程序調(diào)試過程,為后面匯編語言程序設(shè)計(jì)的學(xué)習(xí)作準(zhǔn)備。第三部分為程序設(shè)計(jì)環(huán)節(jié)(第6,7,8,9,10章),闡述匯編語言的順序結(jié)構(gòu)程序、分支結(jié)構(gòu)程序、循環(huán)結(jié)構(gòu)程序及子程序與宏指令的設(shè)計(jì)方法,讓瀆者通過這方面的學(xué)習(xí)順利掌握基本的匯編語言程序設(shè)計(jì)。在此基礎(chǔ)上,研究CPU與外設(shè)之間數(shù)據(jù)傳送程序設(shè)計(jì)和模塊化程序設(shè)計(jì),為讀者用匯編語言開發(fā)大型軟件做鋪墊。下篇為應(yīng)用篇,展示了匯編語言在數(shù)據(jù)處理、圖像處理和接口及通信中的近30個(gè)應(yīng)用示例,供讀者借鑒和移植。同時(shí)給出了上機(jī)實(shí)習(xí)指導(dǎo),給出了實(shí)習(xí)目的、實(shí)習(xí)內(nèi)容、實(shí)習(xí)要求、實(shí)習(xí)準(zhǔn)備及參考程序?! ”緯某霭娴玫搅藮|南大學(xué)出版社的大力支持與幫助,在此致以深深的謝意?! ”緯勺鳛楦鞣N不同層次和類型高等院校計(jì)算機(jī)及其相關(guān)專業(yè)的教材,亦可作為計(jì)算機(jī)研究、生產(chǎn)和應(yīng)用開發(fā)等人員的參考書。 因水平有限,書中錯(cuò)誤在所難免,敬請(qǐng)讀者指正。
內(nèi)容概要
《高級(jí)匯編語言程序設(shè)計(jì)及應(yīng)用》上篇全面介紹匯編語言程序設(shè)計(jì)的原理、方法和技巧,其中包括CPU結(jié)構(gòu)、指令、偽指令、宏指令、匯編語言源程序結(jié)構(gòu)、基本程序(順序,分支,循環(huán))設(shè)計(jì)、子程序設(shè)計(jì)、輸入/輸出程序設(shè)計(jì)和模塊化程序設(shè)計(jì)等,并配有例題200余道。下篇為應(yīng)用篇,給出了匯編語言在數(shù)據(jù)處理、圖像處理以及接口與通信中的應(yīng)用。同時(shí),配有實(shí)習(xí)指導(dǎo),給出了實(shí)習(xí)目的、實(shí)習(xí)內(nèi)容、實(shí)習(xí)要求、實(shí)習(xí)準(zhǔn)備及參考程序。全書具有明顯的特色和較強(qiáng)的實(shí)用性。 《高級(jí)匯編語言程序設(shè)計(jì)及應(yīng)用》取材力求跟蹤計(jì)算機(jī)新技術(shù)的發(fā)展,具有重點(diǎn)突出、承上啟下、由淺入深、簡明易懂、示例豐富、方便自學(xué)等特點(diǎn)。 《高級(jí)匯編語言程序設(shè)計(jì)及應(yīng)用》可作為各種不同層次和類型高等院校計(jì)算機(jī)及相關(guān)專業(yè)的教材,亦可作為從事計(jì)算機(jī)研究、生產(chǎn)和開發(fā)等有關(guān)人員的培訓(xùn)教材和參考書。
書籍目錄
上篇 理論篇1 計(jì)算機(jī)中數(shù)的表示1.1 計(jì)算機(jī)數(shù)據(jù)的表示1.1.1 數(shù)制、基數(shù)與“位權(quán)”1.1.2 二進(jìn)制數(shù)1.1.3 十六進(jìn)制數(shù)1.1.4 不同數(shù)制之間的轉(zhuǎn)換1.2 原碼、反碼與補(bǔ)碼1.2.1 無符號(hào)數(shù)與有符號(hào)數(shù)1.2.2 原碼1.2.3 反碼1.2.4 補(bǔ)碼1.3 數(shù)據(jù)存取方式1.3.1 字節(jié)數(shù)1.3.2 字?jǐn)?shù)據(jù)1.3.3 雙字?jǐn)?shù)據(jù)1.4 ASCIl碼1.5 BCD碼1.5.1 壓縮BCD碼1.5.2 非壓縮BCD碼1.6 擴(kuò)展的鍵盤代碼習(xí)題12 Intel微處理器2.1 8086/8088微處理器2.1.1 8086/8088微處理器的結(jié)構(gòu)2.1.2 8086/8088內(nèi)存儲(chǔ)器的組織2.1.3 段概念的引入2.1.4 內(nèi)存儲(chǔ)器的地址2.1.5 堆棧2.2 80386微處理器2.2.1 80386微處理器的主要性能2.2.2 80386CPU的結(jié)構(gòu)2.2.3 80386寄存器及其功能2.3 80486微處理器2.3.1 80486的特點(diǎn)2.3.2 80486CPU的結(jié)構(gòu)2.3.3 80486寄存器組2.4 80586(Pentium)微處理器2.5 80x86的工作方式習(xí)題23 尋址方式與指令系統(tǒng)3.1 8086/8088的尋址方式3.1.1 立即尋址3.1.2 直接尋址3.1.3 寄存器尋址3.1.4 寄存器間接尋址3.1.5 基址尋址3.1.6 變址尋址3.1.7 基址變址尋址3.1.8 相對(duì)基址變址尋址3.1.9 段默認(rèn)與段跨越3.2 80x86擴(kuò)展尋址方式3.3 匯編指令語句格式3.3.1 標(biāo)號(hào)3.3.2 指令助記符3.3.3 目的操作數(shù)3.3.4 源操作數(shù)3.3.5 注釋3.4 8086/8088指令系統(tǒng)3.4.1 數(shù)據(jù)傳送指令3.4.2 算術(shù)運(yùn)算指令3.4.3 邏輯運(yùn)算與移位指令3.4.4 串操作指令3.4.5 控制轉(zhuǎn)移指令3.4.6 處理器控制指令3.4.7 十進(jìn)制運(yùn)算調(diào)整指令3.5 實(shí)方式32位指令3.5.1 32位數(shù)據(jù)傳送指令3.5.2 32位算術(shù)運(yùn)算指令3.5.3 32位邏輯運(yùn)算與移位指令3.5.4 32位串操作指令3.5.5 32位控制轉(zhuǎn)移指令3.5.6 32位位操作指令3.5.7 32位保護(hù)方式指令3.5.8 32位交換與比較指令3.6 Pentium微處理器新增指令習(xí)題34 操作數(shù)運(yùn)算符與常用偽指令4.1 操作數(shù)運(yùn)算符4.1.1 算術(shù)運(yùn)算符(單目+,單目一,+,-,*,/,MOD)4.1.2 邏輯運(yùn)算符(NOT,AND,OR,XOR)4.1.3 關(guān)系運(yùn)算符(EQ,NE,LT,LE,GT,GE)4.1.4 數(shù)值回送運(yùn)算符(sEG,0FFSET,TYPE,LENGrrH,SIZE)4.1.5 屬性運(yùn)算符(PTR,SHORT,THIS,HIGH,LOW)4.1.6 移位運(yùn)算符(SHL,SHR)4.1.7 運(yùn)算符優(yōu)先級(jí)4.2 常用偽指令4.2.1 數(shù)據(jù)定義偽指令(DB,DW,DD,DF,DQ,DT,?,DuP)4.2.2 符號(hào)定義偽指令(EQU,=,LABLE)4.2.3 段定義偽指令(sEGMENT,ENDS,ASSUME)4.2.4 過程定義偽指令(PROC,ENDP)4.2.5 匯編控制偽指令(END,ORG,NAME)4.2.6 列表偽指令(TITLE,PAGE,SUBTTL,%OUT)4.3 80X86擴(kuò)展偽指令4.3.1 方式選擇偽指令4.3.2 段定義偽指令習(xí)題45 匯編語言源程序結(jié)構(gòu)與調(diào)試運(yùn)行5.1 8086/8088匯編源程序結(jié)構(gòu)5.1.1 EXE文件的匯編格式5.1.2 COM文件的匯編格式5.2 80X86匯編源程序結(jié)構(gòu)5.3 匯編語言程序調(diào)試過程5.3.1 基本過程5.3.2 Windows環(huán)境下的上機(jī)步驟5.3.3 匯編列表文件、交叉引用文件、連接列表文件說明5.4 C0M文件的建立習(xí)題56 程序的基本結(jié)構(gòu)與匯編語言程序設(shè)計(jì)6.1 程序設(shè)計(jì)的基本過程6.1.1 準(zhǔn)備工作6.1.2 程序設(shè)計(jì)6.1.3 程序評(píng)價(jià)6.2 程序的基本結(jié)構(gòu)6.3 順序結(jié)構(gòu)程序設(shè)計(jì)6.4 分支結(jié)構(gòu)程序設(shè)計(jì)6.4.1 利用比較和條件轉(zhuǎn)移指令實(shí)現(xiàn)程序分支6.4.2 利用跳轉(zhuǎn)表實(shí)現(xiàn)多路分支6.5 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)6.5.1 循環(huán)程序控制方法6.5.2 單重循環(huán)程序設(shè)計(jì)6.5.3 多重循環(huán)程序設(shè)計(jì)習(xí)題67 系統(tǒng)功能調(diào)用7.1 BIOS和DOS中斷7.2 調(diào)用BIOS和DOS中斷程序的基本方法7.3 BIOS中斷調(diào)用7.3.1 文本方式屬性7.3.2 INTIOH主要功能調(diào)用7.4 DOS中斷功能調(diào)用7.4.1 DOS中斷基本功能7.4.2 DOS系統(tǒng)功能(INT21H)調(diào)用示例習(xí)題78 子程序與宏指令8.1 子程序設(shè)計(jì)中的基本要素8.2 主程序與子程序的連接8.3 子程序調(diào)用中的數(shù)據(jù)保護(hù)與恢復(fù)8.4 主程序與子程序之間的參數(shù)傳遞8.4.1 寄存器傳遞8.4.2 存儲(chǔ)單元傳遞8.4.3 堆棧傳遞8.5 子程序嵌套與遞歸8.6 宏指令8.6.1 宏定義8.6.2 宏調(diào)用與宏擴(kuò)展8.7 宏定義中的偽指令8.8 宏嵌套8.9 宏庫的建立與使用習(xí)題89 輸入/輸出控制方式及程序設(shè)計(jì)9.1 I/O端口的編址方式……下篇 應(yīng)用篇11 匯編語言在數(shù)據(jù)處理中的應(yīng)用12 匯編語言在圖像處理中的應(yīng)用13 匯編語言在接口與通信中的應(yīng)用14 實(shí)習(xí)指導(dǎo)附錄A 8086/80X86指令集附錄B MASM5.0出錯(cuò)信息附錄C 系統(tǒng)中斷參考文獻(xiàn)
章節(jié)摘錄
2)內(nèi)部寄存器陣列 8086/8088內(nèi)部寄存器陣列共有4組:通用數(shù)據(jù)寄存器(簡稱數(shù)據(jù)寄存器)、指針及變址寄存器、段寄存器和控制寄存器。(1)數(shù)據(jù)寄存器數(shù)據(jù)寄存器包括4個(gè)16位的寄存器(Ax、BX、CX、DX)或8個(gè)8位寄存器(AH、AL、BH、BL、CH、cL、DH、DL)。這些寄存器都可以用來暫時(shí)存放操作數(shù)、運(yùn)算結(jié)果及其他信息,但同時(shí)又具有某些專用用途?! x(Accumulator)累加器。是算術(shù)運(yùn)算中的主要寄存器,在乘除運(yùn)算中用來指定被乘數(shù)和被除數(shù),也是乘、除運(yùn)算后積和商的默認(rèn)存儲(chǔ)單元。另外I/O指令均使用該寄存器與I/O設(shè)備傳送信息。BX(Base Register)基址寄存器。指令尋址時(shí)存入偏移量或偏移量構(gòu)成成分。CX(Count Register)計(jì)數(shù)寄存器。在循環(huán)指令操作或串處理指令中隱含計(jì)數(shù)。DX(Date Register)數(shù)據(jù)寄存器。在雙字長運(yùn)算時(shí),與Ax組合構(gòu)成32位操作數(shù),DX為高16位。在某些I/0指令中,DX被用來存放端口地址。(2)指針及變址寄存器這一組寄存器共有4個(gè):SP,BP,sI,DI。它們都是16位寄存器,可以用來存放16位的操作數(shù)或中間結(jié)果,但更經(jīng)常的用途是存放偏移量或位移量。SP(Stack Pointer)堆棧指針寄存器。始終指示棧頂位置,與ss寄存器一起組成棧頂數(shù)據(jù)的物理地址?! P(Base Pointer)基址指針寄存器。系統(tǒng)默認(rèn)其指向堆棧中某一單元,即提供棧中該單元的偏移量。加段前綴后,BP可作為非堆棧段的地址指針。 SI(Source Index)源變址寄存器。與DS聯(lián)用,指示數(shù)據(jù)段中某操作數(shù)的偏移量。在作串處理時(shí),SI指示源操作數(shù)地址,并有自動(dòng)增量(正反)或自動(dòng)減量(反向)功能。變址尋址時(shí),SI與某一位移量共同構(gòu)成操作數(shù)的偏移量?! I(Destination Index)目的變址寄存器。與DS聯(lián)用,指示數(shù)據(jù)段中某操作數(shù)的偏移量,或與某一位移量共同構(gòu)成操作數(shù)的偏移量。串處理操作時(shí),DI指示附加段中的目的地址,并有自動(dòng)增量(正向)或減量(反向)功能?! 。?)段寄存器 8086/8088微處理器將1MB的內(nèi)存空間分成若干邏輯段(詳見2.1.2 小節(jié)),程序設(shè)計(jì)時(shí),用戶最多可同時(shí)使用其中的四個(gè)段。這四個(gè)段分別為: 代碼段(C0de Segment)存放當(dāng)前程序的指令代碼?! ?shù)據(jù)段(Date Segment)存放程序所涉及的源數(shù)據(jù)或結(jié)果。 堆棧段(stack Segment)以“先入后出”為原則的數(shù)據(jù)區(qū)?! 「郊佣危‥xtra Segment)輔助數(shù)據(jù)區(qū),存放串或其他數(shù)據(jù)。 在實(shí)地址方式下,代碼段寄存器CS、數(shù)據(jù)段寄存器DS、堆棧段寄存器SS、附加段寄存器Es分別保存當(dāng)前四個(gè)段的段基址(20位的段的起始地址的高16位)。(4)控制寄存器控制寄存器含指令指針寄存器IP(Instruction Pointer)和標(biāo)志寄存器FR(Flags Register)。IP寄存器始終指向當(dāng)前將要執(zhí)行指令在代碼段中存放的偏移量。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
高級(jí)匯編語言設(shè)計(jì)及應(yīng)用 PDF格式下載