宏匯編語言、程序設(shè)計的基本技巧、輸入/輸出程序設(shè)計、32位CPU擴展功能、匯編語言上機內(nèi)容與要求!80X86宏匯編語言程序設(shè)計教程》內(nèi)容詳實,敘述細膩易懂,在章節(jié)安排上由淺入深,指令介紹與指令應(yīng)用緊密結(jié)合,使得知識易于理解和掌握。《80X86宏匯編語言程序設(shè)計教程》可作為高等院校計算機及相關(guān)專業(yè)“匯編語言程序設(shè)計”課程教材,也可作為獨立學院、高職高專計算機及相關(guān)專業(yè)、有關(guān)工程技術(shù)人員的教學參考書。
《80X86宏匯編語言程序設(shè)計教程》是高等院校計算機硬、軟件及應(yīng)用專業(yè)學生都必須學習的核心課程之一,它是計算機組成原理、操作系統(tǒng)及其他核心課程的基礎(chǔ)課,也是微機原理、單片機應(yīng)用等課程的學習基礎(chǔ)。同時,該課程對于訓練學生掌握程序設(shè)計技術(shù)、熟悉上機操作和程序調(diào)試技術(shù)都有重要作用。
《80X86宏匯編語言程序設(shè)計教程》的內(nèi)容十分豐富,知識量大,是一門教師普遍感到難教、學生普遍感到難學的課程。為了滿 足教師和學生的教學需要,作者根據(jù)本課程的特點及知識結(jié)構(gòu),在多年教授這門課程的教學經(jīng)驗的基礎(chǔ)上編寫了此書,以期能幫助學生快速熟練地掌握相關(guān)知識,同時為教師的教學提供指導。
本書共10章,分為兩大部分和兩個附錄,各部分內(nèi)容如下:
第一部分:第1~9章。詳細介紹了16位80X86 CPU的宏匯編程序設(shè)計。第1章基礎(chǔ)知識,介紹了學習匯編語言程序設(shè)計所需的數(shù)據(jù)編碼與運算等若干預備知識。第2章8086/8088計算機內(nèi)部體系結(jié)構(gòu),介紹8086/8088 CPU內(nèi)部結(jié)構(gòu)和存儲器管理。第3章匯編語言語法及七種尋址方式,主要介紹了宏匯編語言中的各種符號、表達式、偽指令語句、尋址方式及常用的系統(tǒng)功能調(diào)用。第4章匯編語言指令系統(tǒng),全面介紹了8086指令系統(tǒng)中數(shù)據(jù)傳送指令、算術(shù)運算指令、邏輯運算指令、處理器控制指令。第5章匯編語言基本程序設(shè)計,系統(tǒng)介紹了程序的三種基本結(jié)構(gòu)(順序結(jié)構(gòu)、分支結(jié)構(gòu)及循環(huán)結(jié)構(gòu))及串操作指令的設(shè)計方法與技巧,同時對實現(xiàn)這些結(jié)構(gòu)的轉(zhuǎn)移指令、循環(huán)指令和串指令也作了詳細介紹。第6章匯編語言模塊化程序設(shè)計,介紹了子程序及模塊化程序設(shè)計。第7章高級匯編語言程序設(shè)計,介紹了宏的定義與調(diào)用方法、重復匯編、條件匯編等技術(shù),特別介紹了匯編語言與高級語言的混合編程。第8章輸入/輸出程序設(shè)計,介紹了輸入/輸出數(shù)據(jù)傳送方式、中斷技術(shù)、軟中斷程序設(shè)計及DOS與BIOS中斷調(diào)用。第9章32位機新增指令及功能,以典型的32位80386 CPU為例,介紹了32位CPU的工作模式、內(nèi)部寄存器、內(nèi)存管理、尋址方式、新增指今等擴展功能。
第1章 基礎(chǔ)知識
1.1 計算機語言概述
1.1.1 機器語言
1.1.2 匯編語言
1.1.3 高級語言
1.1.4 非過程性語言
1.1.5 匯編語言的特點
1.2 計算機中數(shù)據(jù)的表示方法
1.2.1 進位計數(shù)制
1.2.2 數(shù)制轉(zhuǎn)換
1.2.3 計算機中數(shù)據(jù)的表示
習題1
第2章 8086/8088計算機系統(tǒng)組織
2.1 8086/8088 CPU的內(nèi)部結(jié)構(gòu)
2.1.1 8086 CPU的功能結(jié)構(gòu)
2.1.2 8086 CPU的寄存器結(jié)構(gòu)
2.2 存儲器組織
2.2.1 存儲器的地址和內(nèi)容
2.2.2 存儲器的分段
2.3 堆棧
2.3.1 堆棧的特點
2.3.2 堆棧的作用
2.3.3 堆棧的操作
習題2
第3章 匯編語言語法與尋址方式
3.1 匯編語言語句類型及格式
3.1.1 語句類型
3.1.2 指令語句格式
3.2 偽指令
3.2.1 段定義偽指令
3.2.2 數(shù)據(jù)定義
3.2.3 符號定義偽指令
3.2.4 與地址有關(guān)的偽指令
3.2.5 常用偽指令
3.3 表達式
3.3.1 常量
3.3.2 數(shù)值表達式
3.3.3 地址表達式
3.4 尋址方式
3.4.1 立即數(shù)尋址方式
3.4.2 寄存器尋址方式
3.4.3 存儲器型尋址方式
3.4.4 外設(shè)型尋址方式
3.5 匯編語言源程序結(jié)構(gòu)
3.6 常用DOS功能調(diào)用
習題3
第4章 匯編語言指令系統(tǒng)
4.1 數(shù)據(jù)傳送指令
4.2 算術(shù)運算指令
4.3 位操作指令
4.4 處理器控制指令
習題4
第5章 匯編語言基本程序設(shè)計
5.1 匯編語言程序設(shè)計步驟
5.2 順序結(jié)構(gòu)程序設(shè)計
5.3 分支結(jié)構(gòu)程序設(shè)計
5.3.1 轉(zhuǎn)移地址的尋址方式
5.3.2 無條件轉(zhuǎn)移指令
5.3.3 條件轉(zhuǎn)移指令
5.3.4 分支結(jié)構(gòu)程序設(shè)計
5.4 循環(huán)結(jié)構(gòu)程序設(shè)計
5.4.1 循環(huán)控制結(jié)構(gòu)
5.4.2 循環(huán)控制指令
5.4.3 循環(huán)程序設(shè)計方法
5.4.4 多重循環(huán)程序設(shè)計舉例
5.5 串操作程序設(shè)計
5.5.1 串操作概述
5.5.2 串操作指令及程序設(shè)計
習題5
第6章 匯編語言模塊化程序設(shè)計
6.1 子程序設(shè)計
6.1.1 子程序概述
6.1.2 子程序的調(diào)用與返回指令
6.1.3 子程序的定義
6.1.4 主程序與子程序的參數(shù)傳遞
6.1.5 子程序的嵌套
6.2 模塊化程序設(shè)計
6.2.1 模塊的裝配連接
6.2.2 模塊間的通信
6.2.3 模塊化程序設(shè)計舉例
習題6
第7章 高級匯編語言程序設(shè)計
7.1 宏匯編
7.1.1 宏指令的使用
7.1.2 宏與子程序的區(qū)別
7.1.3 與宏有關(guān)的偽指令
7.1.4 宏庫的建立與使用
7.2 重復匯編
7.3 條件匯編
7.4 數(shù)據(jù)結(jié)構(gòu)
7.5 數(shù)據(jù)記錄
7.6 匯編語言與高級語言的連接
7.6.1 嵌入?yún)R編語言
7.6.2 多模塊混合編程
習題7
第8章 輸入/輸出程序設(shè)計
8.1 輸入/輸出概述
8.1.1 I/O端口的編址方式
8.1.2 數(shù)據(jù)傳送方式
8.2 數(shù)據(jù)的輸入/輸出
8.2.1 I/O指令
8.2.2 程序查詢I/O方式
8.2.3 中斷I/O方式
8.3 鍵盤輸入控制
8.4 屏幕輸出控制
8.5 打印機輸出控制
8.6 磁盤文件操作
8.6.1 文件概述
8.6.2 文件操作的系統(tǒng)功能調(diào)用
8.6.3 文件管理程序設(shè)計
習題8
第9章 32位機新增指令及功能
9.1 80386的工作機制
9.1.1 80386 CPU的內(nèi)部結(jié)構(gòu)
9.1.2 80386寄存器
9.1.3 80386存儲器管理
9.1.4 存儲模型與段的簡化定義
9.1.5 80386的尋址方式
9.1.6 80386新增指令
9.2 80486系統(tǒng)
9.2.1 80486 CPU結(jié)構(gòu)
9.2.2 80486的內(nèi)存管理和高速緩存
9.2.3 80486擴充指令
9.3 Pentium系統(tǒng)
9.3.1 Pentium CPU結(jié)構(gòu)
9.3.2 Pentium擴充指令
9.4 程序舉例
習題9
第10章 實驗指導
10.1 匯編語言上機過程及調(diào)試工具
10.2 分支程序設(shè)計
10.3 循環(huán)程序設(shè)計
10.4 子程序設(shè)計(一)
10.5 子程序設(shè)計(二)
10.6 字符處理程序設(shè)計
10.7 中斷程序設(shè)計
10.8 磁盤文件管理程序設(shè)計
10.9 模塊化程序設(shè)計
10.10 綜合程序設(shè)計
附錄A ASC II碼表
附錄B 調(diào)試工具DEBUG
參考文獻
1.1.3高級語言
盡管匯編語言比機器語言方便,但匯編語言仍然具有許多不便之處,程序編寫的效率遠遠不能滿足需要。1954年,第一個高級語言FORTRAN問世了。高級語言是一種與具體的計算機硬件無關(guān)、獨立于機器的通用語言,它比較接近人類自然語言的語法及數(shù)學表達式,人們用高級語言編程不必了解和熟悉機器的指令系統(tǒng),更容易被人們掌握和使用。高級語言采用接近自然語言的詞匯,其程序的通用性強,易學易用,這些語言面向計算機求解問題的過程,不依賴具體機器,與特定機器相分離。計算機不能直接執(zhí)行高級語言程序,高級語言程序必須先翻譯轉(zhuǎn)換成“目標程序”(即機器語言程序)才能被執(zhí)行。這種翻譯轉(zhuǎn)換工作由被稱為“編譯程序”的專門軟件來完成,其過程如圖1.2所示。
高級語言翻譯成機器語言有兩種方式,一種是先把高級語言程序翻譯成機器語言程序,然后在機器上執(zhí)行,這種翻譯稱為編譯方式,大多數(shù)高級語言如PASCAL語言、c語言等都是采用這種方式;另一種方式是直接把高級語言程序在機器上運行,一邊解釋一邊執(zhí)行,這種翻譯方式稱為解釋,如BASIC語言就采用這種方式。每一種高級語言都有自己的編譯程序,在一臺計算機上運行某一種高級語言源程序的前提是該計算機系統(tǒng)配置了該語言的編譯程序。
高級語言源程序在不對硬件編程時,是在未考慮機器結(jié)構(gòu)的特點下編寫的,經(jīng)過翻譯后的目標程序往往不夠精練,過于冗長,加大了目標程序的長度,導致存儲空間占用較大和執(zhí)行時間較長。
1.1.4非過程性語言
面向過程的高級語言稱為過程性語言,用它編程序必須寫出每一步如何進行的全過程。程序設(shè)計者必須具體指出執(zhí)行的每一個細節(jié)(例如,輸入一個數(shù)給某一變量、進行某一公式的運算、進行什么條件判斷、執(zhí)行多少次循環(huán)等)。這要求程序設(shè)計人員考慮得十分周到,稍有不慎(例如寫錯一個字母),就會導致程序運行失敗。