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