版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
《匯編語言》課件
《匯編語言》課件
第1章基礎(chǔ)知識(shí)1.1機(jī)器語言1.9數(shù)據(jù)總線1.2匯編語言的產(chǎn)生1.10控制總線1.3匯編語言的組成1.11內(nèi)存地址空間(概述)1.4存儲(chǔ)器1.12主板1.5指令和數(shù)據(jù)1.13接口卡1.6存儲(chǔ)單元1.14各類存儲(chǔ)器芯片1.7CPU對(duì)存儲(chǔ)器的讀寫1.15內(nèi)存地址空間1.8地址總線第1章基礎(chǔ)知識(shí)1.1機(jī)器語言引言匯編語言是直接在硬件之上工作的編程語言,首先要了解硬件系統(tǒng)的結(jié)構(gòu),才能有效的應(yīng)用匯編語言對(duì)其編程。在本章中,對(duì)硬件系統(tǒng)結(jié)構(gòu)的問題進(jìn)行一部分的探討,以使后續(xù)的課程可在一個(gè)好的基礎(chǔ)上進(jìn)行。引言匯編語言是直接在硬件之上工作的編程語言,首先要了解硬件系引言匯編課程的研究重點(diǎn)放在如何利用硬件系統(tǒng)的編程結(jié)構(gòu)和指令集有效靈活的控制系統(tǒng)進(jìn)行工作。引言匯編課程的研究重點(diǎn)放在如何利用硬件系統(tǒng)的編程結(jié)構(gòu)和指令集1.1機(jī)器語言機(jī)器語言是機(jī)器指令的集合。機(jī)器指令展開來講就是一臺(tái)機(jī)器可以正確執(zhí)行的命令。1.1機(jī)器語言1.1機(jī)器語言指令:01010000(PUSHAX)電平脈沖:
1.1機(jī)器語言指令:01010000(PUSHAX)1.1機(jī)器語言以后我們提到的計(jì)算機(jī)是指由CPU和其他受CPU直接或間接控制的芯片、器件、設(shè)備組成的計(jì)算機(jī)系統(tǒng);比如我們最常見的PC機(jī)。
1.1機(jī)器語言以后我們提到的計(jì)算機(jī)是指由CPU和其他受C1.1機(jī)器語言程序員們將0、1數(shù)字編程的程序代碼打在紙帶或卡片上,1打孔,0不打孔,再將程序通過紙帶機(jī)或卡片機(jī)輸入計(jì)算機(jī),進(jìn)行運(yùn)算。示例應(yīng)用8086CPU完成運(yùn)算:
S=768+12288–12801.1機(jī)器語言程序員們將0、1數(shù)字編程的程序代碼打在紙1.1機(jī)器語言S=768+12288-1280機(jī)器碼:
101100000000000000000011000001010000000000110000001011010000000000000101
假如將程序錯(cuò)寫成以下這樣,請(qǐng)找處錯(cuò)誤:
1011000000000000000000110000010100000000001100000001011010000000000001011.1機(jī)器語言S=768+12288-12801.1機(jī)器語言在顯示器上輸出“welcometomasm”。
機(jī)器碼看到這樣的程序,你會(huì)有什么感想?如果程序里有一個(gè)“
1”被誤寫為“
0”,又如何去查找呢?1.1機(jī)器語言在顯示器上輸出“welcometomas1.2匯編語言的產(chǎn)生匯編語言的主體是匯編指令。匯編指令和機(jī)器指令的差別在于指令的表示方法上。匯編指令是機(jī)器指令便于記憶的書寫格式。匯編指令是機(jī)器指令的助記符。1.2匯編語言的產(chǎn)生匯編語言的主體是匯編指令。1.2匯編語言的產(chǎn)生機(jī)器指令:1000100111011000操作:寄存器BX的內(nèi)容送到AX中匯編指令:MOVAX,BX這樣的寫法與人類語言接近,便于閱讀和記憶。1.2匯編語言的產(chǎn)生機(jī)器指令:1000100111011寄存器寄存器:簡單的講是CPU中可以存儲(chǔ)數(shù)據(jù)的器件,一個(gè)CPU中有多個(gè)寄存器。AX是其中一個(gè)寄存器的代號(hào),BX是另一個(gè)寄存器的代號(hào)。更詳細(xì)的內(nèi)容我們?cè)谝院蟮恼n程中將會(huì)講到。寄存器寄存器:簡單的講是CPU中可以存儲(chǔ)數(shù)據(jù)的器件,一個(gè)CP1.2匯編語言的產(chǎn)生計(jì)算機(jī)能讀懂的只有機(jī)器指令,那么如何讓計(jì)算機(jī)執(zhí)行程序員用匯編指令編寫的程序呢?1.2匯編語言的產(chǎn)生用匯編語言編寫程序的工作過程用匯編語言編寫程序的工作過程1.3匯編語言的組成匯編語言由以下3類組成:1、匯編指令(機(jī)器碼的助記符)2、偽指令(由編譯器執(zhí)行)3、其它符號(hào)(由編譯器識(shí)別)匯編語言的核心是匯編指令,它決定了匯編語言的特性。1.3匯編語言的組成匯編語言由以下3類組成:1.4馮·諾依曼計(jì)算機(jī)馮·諾依曼計(jì)算機(jī)的基本特點(diǎn):(1)采用存儲(chǔ)程序方式,即程序和數(shù)據(jù)放在同一個(gè)存儲(chǔ)器中,程序指令和數(shù)據(jù)都用二進(jìn)制表示,兩者都可以送到CPU執(zhí)行和運(yùn)算。(2)存儲(chǔ)器是按地址訪問的,每個(gè)存儲(chǔ)單元的位數(shù)是固定的。存儲(chǔ)單元采用線性編址方式,按順序取出指令。(3)指令由操作碼和地址碼構(gòu)成。根據(jù)指令含義發(fā)出控制信號(hào)控制計(jì)算機(jī)的操作。(4)機(jī)器以運(yùn)算器為中心,輸入輸出設(shè)備都要經(jīng)過CPU與存儲(chǔ)器間進(jìn)行數(shù)據(jù)傳送。
1.4.1馮·諾依曼機(jī)原理1.4馮·諾依曼計(jì)算機(jī)馮·諾依曼計(jì)算機(jī)的基本特點(diǎn):1.4計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大部件組成。運(yùn)算器和控制器合稱為中央處理器(CPU)。
中央處理器CPU
存儲(chǔ)器
輸入輸出設(shè)備
總線及接口
1.4.2馮·諾依曼計(jì)算機(jī)的基本結(jié)構(gòu)計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大部件組內(nèi)存儲(chǔ)器InnerMemory輸入設(shè)備InputDevice中央處理器CPU輸出設(shè)備OutputDeviceD-BUSA-BUSC_BUS輸入接口輸出接口內(nèi)存儲(chǔ)器輸入設(shè)備中央處理器輸出設(shè)備D-BUSA-BUSC_B調(diào)制解調(diào)器內(nèi)存條電源
中央處理器主板光驅(qū)軟驅(qū)硬盤微型計(jì)算機(jī)的基本結(jié)構(gòu)調(diào)制解調(diào)器內(nèi)存條電源中央處理器主板光驅(qū)軟驅(qū)硬盤微型計(jì)算機(jī)的ISA插槽PCI插槽AGP插槽北橋芯片組南橋芯片組內(nèi)存插槽CPU插槽IDE接口接硬盤光驅(qū)軟驅(qū)接口并口連接器串口連接器ROMBIOS鼠標(biāo)鍵盤USB接口主板電源插座主板ISA插PCI插槽AGP插北橋南橋內(nèi)存插槽CPU插槽IDE接硬件:中央處理機(jī)
CPU總線控制邏輯接口接口存儲(chǔ)器大容量存儲(chǔ)器I/O設(shè)備I/O子系統(tǒng)系統(tǒng)總線......軟件:系統(tǒng)軟件用戶軟件硬件:中央處理機(jī)總線控制接口接口存儲(chǔ)器大容量I/O設(shè)存儲(chǔ)器I/O接口輸入設(shè)備I/O接口數(shù)據(jù)總線DB控制總線CB地址總線AB輸出設(shè)備CPU微機(jī)的硬件由CPU、存儲(chǔ)器、輸入/輸出設(shè)備構(gòu)成;輸入/輸出設(shè)備通過輸入/輸出接口與系統(tǒng)相連;
(輸入/輸出接口簡稱I/O接口)各部件通過總線連接。構(gòu)成部件存I/O輸I/O數(shù)據(jù)總線DB控制總線CB地址總線AB輸1.4存儲(chǔ)器之前簡單介紹了計(jì)算機(jī)的組成結(jié)構(gòu),接下來講匯編語言和這些器件之間的關(guān)系CPU是計(jì)算機(jī)的核心部件.它控制整個(gè)計(jì)算機(jī)的運(yùn)作并進(jìn)行運(yùn)算,要想讓一個(gè)CPU工作,就必須向它提供指令和數(shù)據(jù)。指令和數(shù)據(jù)在存儲(chǔ)器中存放,也就是平時(shí)所說的內(nèi)存。1.4存儲(chǔ)器之前簡單介紹了計(jì)算機(jī)的組成結(jié)構(gòu),接下來講匯編語1.4存儲(chǔ)器在一臺(tái)PC機(jī)中內(nèi)存的作用僅次于CPU。離開了內(nèi)存,性能再好的CPU也無法工作。1.4存儲(chǔ)器1.4存儲(chǔ)器磁盤不同于內(nèi)存,磁盤上的數(shù)據(jù)或程序如果不讀到內(nèi)存中,就無法被CPU使用。1.4存儲(chǔ)器1.5指令和數(shù)據(jù)指令和數(shù)據(jù)是應(yīng)用上的概念。在內(nèi)存或磁盤上,指令和數(shù)據(jù)沒有任何區(qū)別,都是二進(jìn)制信息。1.5指令和數(shù)據(jù)1.5指令和數(shù)據(jù)二進(jìn)制信息:
1000100111011000─>89D8H(數(shù)據(jù))
1000100111011000─>MOVAX,BX(程序)1.5指令和數(shù)據(jù)二進(jìn)制信息:1.6存儲(chǔ)單元存儲(chǔ)器被劃分為若干個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元從0開始順序編號(hào);例如:一個(gè)存儲(chǔ)器有128個(gè)存儲(chǔ)單元,編號(hào)從0~127。如右圖示:1.6存儲(chǔ)單元存儲(chǔ)器被劃分為若干個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元從1.6存儲(chǔ)單元對(duì)于大容量的存儲(chǔ)器一般還用以下單位來計(jì)量容量(以下用B來代表Byte):1KB=1024B1MB=1024KB1GB=1024MB1TB=1024GB磁盤的容量單位同內(nèi)存的一樣,實(shí)際上以上單位是微機(jī)中常用的計(jì)量單位。1.6存儲(chǔ)單元對(duì)于大容量的存儲(chǔ)器一般還用以下單位來計(jì)量容量1.7CPU對(duì)存儲(chǔ)器的讀寫CPU要想進(jìn)行數(shù)據(jù)的讀寫,必須和外部器件(標(biāo)準(zhǔn)的說法是芯片)進(jìn)行三類信息的交互:存儲(chǔ)單元的地址(地址信息)器件的選擇,讀或?qū)懨睿刂菩畔ⅲ┳x或?qū)懙臄?shù)據(jù)(數(shù)據(jù)信息)1.7CPU對(duì)存儲(chǔ)器的讀寫CPU要想進(jìn)行數(shù)據(jù)的讀寫,必須和1.7CPU對(duì)存儲(chǔ)器的讀寫那么CPU是通過什么將地址、數(shù)據(jù)和控制信息傳到存儲(chǔ)芯片中的呢?電子計(jì)算機(jī)能處理、傳輸?shù)男畔⒍际请娦盘?hào),電信號(hào)當(dāng)然要用導(dǎo)線傳送。1.7CPU對(duì)存儲(chǔ)器的讀寫那么CPU是通過什么將地址、數(shù)據(jù)1.7CPU對(duì)存儲(chǔ)器的讀寫在計(jì)算機(jī)中專門有連接CPU和其他芯片的導(dǎo)線,通常稱為總線。物理上:一根根導(dǎo)線的集合;邏輯上劃分為:地址總線數(shù)據(jù)總線控制總線圖示1.7CPU對(duì)存儲(chǔ)器的讀寫在計(jì)算機(jī)中專門有連接CPU和其他1.7CPU對(duì)存儲(chǔ)器的讀寫總線在邏輯上劃分的圖示:1.7CPU對(duì)存儲(chǔ)器的讀寫總線在邏輯上劃分的圖示:1.7CPU對(duì)存儲(chǔ)器的讀寫CPU在內(nèi)存中讀或?qū)懙臄?shù)據(jù)演示:讀演示寫演示從上面我們知道CPU是如何進(jìn)行數(shù)據(jù)讀寫的??墒俏覀?nèi)绾蚊钣?jì)算機(jī)進(jìn)行數(shù)據(jù)的讀寫呢?1.7CPU對(duì)存儲(chǔ)器的讀寫CPU在內(nèi)存中讀或?qū)懙臄?shù)據(jù)演示:1.7CPU對(duì)存儲(chǔ)器的讀寫1.7CPU對(duì)存儲(chǔ)器的讀寫1.7CPU對(duì)存儲(chǔ)器的讀寫1.7CPU對(duì)存儲(chǔ)器的讀寫1.7CPU對(duì)存儲(chǔ)器的讀寫對(duì)于8086CPU,下面的機(jī)器碼能夠完成從3號(hào)單元讀數(shù)據(jù):機(jī)器碼:101000000000001100000000含義:從3號(hào)單元讀取數(shù)據(jù)送入寄存器AXCPU接收這條機(jī)器碼后將完成上面所述的讀寫工作。1.7CPU對(duì)存儲(chǔ)器的讀寫對(duì)于8086CPU,下面的機(jī)器碼1.7CPU對(duì)存儲(chǔ)器的讀寫機(jī)器碼難于記憶,用匯編指令來表示,情況如下:機(jī)器碼:101000000000001100000000對(duì)應(yīng)的匯編指令:MOVAX,[3]含義:傳送3號(hào)單元的內(nèi)容到AX1.7CPU對(duì)存儲(chǔ)器的讀寫機(jī)器碼難于記憶,用匯編指令來表示1.8地址總線CPU是通過地址總線來指定存儲(chǔ)單元的。地址總線上能傳送多少個(gè)不同的信息,CPU就可以對(duì)多少個(gè)存儲(chǔ)單元進(jìn)行尋址。1.8地址總線CPU是通過地址總線來指定存儲(chǔ)單元的。1.8地址總線地址總線發(fā)送地址信息演示1.8地址總線1.8地址總線1.8地址總線1.8地址總線一個(gè)CPU有N根地址總線,則可以說這個(gè)CPU的地址總線的寬度為N。這樣的CPU最多可以尋找2的N次方個(gè)內(nèi)存單元。1.8地址總線一個(gè)CPU有N根地址總線,則可以說這個(gè)CPU1.9數(shù)據(jù)總線CPU與內(nèi)存或其它器件之間的數(shù)據(jù)傳送是通過數(shù)據(jù)總線來進(jìn)行的。數(shù)據(jù)總線的寬度決定了CPU和外界的數(shù)據(jù)傳送速度。1.9數(shù)據(jù)總線CPU與內(nèi)存或其它器件之間的數(shù)據(jù)傳送是通過數(shù)1.9數(shù)據(jù)總線我們來分別看一下它們向內(nèi)存中寫入數(shù)據(jù)89D8H時(shí),是如何通過數(shù)據(jù)總線傳送數(shù)據(jù)的:8088CPU數(shù)據(jù)總線上的數(shù)據(jù)傳送情況8086CPU數(shù)據(jù)總線上的數(shù)據(jù)傳送情況1.9數(shù)據(jù)總線我們來分別看一下它們向內(nèi)存中寫入數(shù)據(jù)89D81.9數(shù)據(jù)總線8位數(shù)據(jù)總線上傳送的信息1.9數(shù)據(jù)總線8位數(shù)據(jù)總線上傳送的信息1.9數(shù)據(jù)總線16位數(shù)據(jù)總線上傳送的信息1.9數(shù)據(jù)總線16位數(shù)據(jù)總線上傳送的信息1.10控制總線CPU對(duì)外部器件的控制是通過控制總線來進(jìn)行的。在這里控制總線是個(gè)總稱,控制總線是一些不同控制線的集合。有多少根控制總線,就意味著CPU提供了對(duì)外部器件的多少種控制。所以,控制總線的寬度決定了CPU對(duì)外部器件的控制能力??刂瓶偩€上發(fā)送的控制信息1.10控制總線CPU對(duì)外部器件的控制是通過控制總線來進(jìn)行1.10控制總線1.10控制總線1.10控制總線前面所講的內(nèi)存讀或?qū)懨钍怯蓭赘刂凭€綜合發(fā)出的:其中有一根名為讀信號(hào)輸出控制線負(fù)責(zé)由CPU向外傳送讀信號(hào),CPU向該控制線上輸出低電平表示將要讀取數(shù)據(jù);有一根名為寫信號(hào)輸出控制線負(fù)責(zé)由CPU向外傳送寫信號(hào)。1.10控制總線前面所講的內(nèi)存讀或?qū)懨钍怯蓭赘刂凭€綜合小結(jié)(1)匯編指令是機(jī)器指令的助記符,同機(jī)器指令一一對(duì)應(yīng)。(2)每一種CPU都有自己的匯編指令集。小結(jié)小結(jié)(3)CPU可以直接使用的信息在存儲(chǔ)器中存放。(4)在存儲(chǔ)器中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進(jìn)制信息。小結(jié)小結(jié)(5)存儲(chǔ)單元從零開始順序編號(hào)。(6)一個(gè)存儲(chǔ)單元可以存儲(chǔ)8個(gè)bit(用作單位寫成“b”),即8位二進(jìn)制數(shù)。(7)1B=8b 1KB=1024B1MB=1024KB 1GB=1024MB小結(jié)(5)存儲(chǔ)單元從零開始順序編號(hào)。小結(jié)(續(xù))(8)每一個(gè)CPU芯片都有許多管腳,這些管腳和總線相連。也可以說,這些管腳引出總線。一個(gè)CPU可以引出三種總線的寬度標(biāo)志了這個(gè)CPU的不同方面的性能:地址總線的寬度決定了CPU的尋址能力;數(shù)據(jù)總線的寬度決定了CPU與其它器件進(jìn)行數(shù)據(jù)傳送時(shí)的一次數(shù)據(jù)傳送量;控制總線寬度決定了CPU對(duì)系統(tǒng)中其它器件的控制能力。小結(jié)(續(xù))(8)每一個(gè)CPU芯片都有許多管腳,這些管腳和總線小結(jié)(續(xù))在匯編課程中,我們從功能的角度介紹了這三類總線,對(duì)實(shí)際的連接情況不做討論。小結(jié)(續(xù))1.11內(nèi)存地址空間(概述)什么是內(nèi)存地址空間呢?一個(gè)CPU的地址線寬度為10,那么可以尋址1024個(gè)內(nèi)存單元,這1024個(gè)可尋到的內(nèi)存單元就構(gòu)成這個(gè)CPU的內(nèi)存地址空間。下面深入討論。首先需要介紹兩部分基本知識(shí),主板和接口卡。1.11內(nèi)存地址空間(概述)什么是內(nèi)存地址空間呢?1.12主板在每一臺(tái)PC機(jī)中,都有一個(gè)主板,主板上有核心器件和一些主要器件。這些器件通過總線(地址總線、數(shù)據(jù)總線、控制總線)相連。1.12主板在每一臺(tái)PC機(jī)中,都有一個(gè)主板,主板上有核心器1.13接口卡計(jì)算機(jī)系統(tǒng)中,所有可用程序控制其工作的設(shè)備,必須受到CPU的控制。CPU對(duì)外部設(shè)備不能直接控制,如顯示器、音箱、打印機(jī)等。直接控制這些設(shè)備進(jìn)行工作的是插在擴(kuò)展插槽上的接口卡。1.13接口卡計(jì)算機(jī)系統(tǒng)中,所有可用程序控制其工作的設(shè)備,1.14各類存儲(chǔ)器芯片從讀寫屬性上看分為兩類:隨機(jī)存儲(chǔ)器(RAM)和只讀存儲(chǔ)器(ROM)從功能和連接上分類:隨機(jī)存儲(chǔ)器RAM裝有BIOS的ROM接口卡上的RAMPC機(jī)中各類存儲(chǔ)器的邏輯連接情況1.14各類存儲(chǔ)器芯片從讀寫屬性上看分為兩類:1.14各類存儲(chǔ)器芯片裝有BIOS的ROMBIOS:BasicInput/OutputSystem,基本輸入輸出系統(tǒng)。
BIOS是由主板和各類接口卡(如:顯卡、網(wǎng)卡等)廠商提供的軟件系統(tǒng),可以通過它利用該硬件設(shè)備進(jìn)行最基本的輸入輸出。在主板和某些接口卡上插有存儲(chǔ)相應(yīng)BIOS的ROM。1.14各類存儲(chǔ)器芯片裝有BIOS的ROM《匯編語言》cpu存儲(chǔ)器總線(第二章)課件1.15內(nèi)存地址空間上述的那些存儲(chǔ)器在物理上是獨(dú)立的器件。但是它們?cè)谝韵聝牲c(diǎn)上相同:
1、都和CPU的總線相連。
2、CPU對(duì)它們進(jìn)行讀或?qū)懙臅r(shí)候都通過控制線發(fā)出內(nèi)存讀寫命令。1.15內(nèi)存地址空間上述的那些存儲(chǔ)器在物理上是獨(dú)立的器件。1.15內(nèi)存地址空間將各各類存儲(chǔ)器看作一個(gè)邏輯存儲(chǔ)器:所有的物理存儲(chǔ)器被看作一個(gè)由若干存儲(chǔ)單元組成的邏輯存儲(chǔ)器;每個(gè)物理存儲(chǔ)器在這個(gè)邏輯存儲(chǔ)器中占有一個(gè)地址段,即一段地址空間;CPU在這段地址空間中讀寫數(shù)據(jù),實(shí)際上就是在相對(duì)應(yīng)的物理存儲(chǔ)器中讀寫數(shù)據(jù)。1.15內(nèi)存地址空間將各各類存儲(chǔ)器看作一個(gè)邏輯存儲(chǔ)器:《匯編語言》cpu存儲(chǔ)器總線(第二章)課件1.15內(nèi)存地址空間假設(shè),上圖中的內(nèi)存空間地址段分配如下:地址0~7FFFH的32KB空間為主隨機(jī)存儲(chǔ)器的地址空間;地址8000H~9FFFH的8KB空間為顯存地址空間;地址A000H~FFFFH的24KB空間為各個(gè)ROM的地址空間。1.15內(nèi)存地址空間假設(shè),上圖中的內(nèi)存空間地址段分配如下:1.15內(nèi)存地址空間不同的計(jì)算機(jī)系統(tǒng)的內(nèi)存地址空間分配情況是不同的。8086PC機(jī)內(nèi)存地址空間分配的基本情況1.15內(nèi)存地址空間不同的計(jì)算機(jī)系統(tǒng)的內(nèi)存地址空間分配情況8086PC機(jī)的內(nèi)存地址空間分配8086PC機(jī)的內(nèi)存地址空間分配1.15內(nèi)存地址空間內(nèi)存地址空間:最終運(yùn)行程序的是CPU,我們用匯編編程的時(shí)候,必須要從CPU角度考慮問題。對(duì)CPU來講,系統(tǒng)中的所有存儲(chǔ)器中的存儲(chǔ)單元都處于一個(gè)統(tǒng)一的邏輯存儲(chǔ)器中,它的容量受CPU尋址能力的限制。這個(gè)邏輯存儲(chǔ)器即是我們所說的內(nèi)存地址空間。1.15內(nèi)存地址空間內(nèi)存地址空間:小結(jié)小結(jié)《匯編語言》課件
《匯編語言》課件
第1章基礎(chǔ)知識(shí)1.1機(jī)器語言1.9數(shù)據(jù)總線1.2匯編語言的產(chǎn)生1.10控制總線1.3匯編語言的組成1.11內(nèi)存地址空間(概述)1.4存儲(chǔ)器1.12主板1.5指令和數(shù)據(jù)1.13接口卡1.6存儲(chǔ)單元1.14各類存儲(chǔ)器芯片1.7CPU對(duì)存儲(chǔ)器的讀寫1.15內(nèi)存地址空間1.8地址總線第1章基礎(chǔ)知識(shí)1.1機(jī)器語言引言匯編語言是直接在硬件之上工作的編程語言,首先要了解硬件系統(tǒng)的結(jié)構(gòu),才能有效的應(yīng)用匯編語言對(duì)其編程。在本章中,對(duì)硬件系統(tǒng)結(jié)構(gòu)的問題進(jìn)行一部分的探討,以使后續(xù)的課程可在一個(gè)好的基礎(chǔ)上進(jìn)行。引言匯編語言是直接在硬件之上工作的編程語言,首先要了解硬件系引言匯編課程的研究重點(diǎn)放在如何利用硬件系統(tǒng)的編程結(jié)構(gòu)和指令集有效靈活的控制系統(tǒng)進(jìn)行工作。引言匯編課程的研究重點(diǎn)放在如何利用硬件系統(tǒng)的編程結(jié)構(gòu)和指令集1.1機(jī)器語言機(jī)器語言是機(jī)器指令的集合。機(jī)器指令展開來講就是一臺(tái)機(jī)器可以正確執(zhí)行的命令。1.1機(jī)器語言1.1機(jī)器語言指令:01010000(PUSHAX)電平脈沖:
1.1機(jī)器語言指令:01010000(PUSHAX)1.1機(jī)器語言以后我們提到的計(jì)算機(jī)是指由CPU和其他受CPU直接或間接控制的芯片、器件、設(shè)備組成的計(jì)算機(jī)系統(tǒng);比如我們最常見的PC機(jī)。
1.1機(jī)器語言以后我們提到的計(jì)算機(jī)是指由CPU和其他受C1.1機(jī)器語言程序員們將0、1數(shù)字編程的程序代碼打在紙帶或卡片上,1打孔,0不打孔,再將程序通過紙帶機(jī)或卡片機(jī)輸入計(jì)算機(jī),進(jìn)行運(yùn)算。示例應(yīng)用8086CPU完成運(yùn)算:
S=768+12288–12801.1機(jī)器語言程序員們將0、1數(shù)字編程的程序代碼打在紙1.1機(jī)器語言S=768+12288-1280機(jī)器碼:
101100000000000000000011000001010000000000110000001011010000000000000101
假如將程序錯(cuò)寫成以下這樣,請(qǐng)找處錯(cuò)誤:
1011000000000000000000110000010100000000001100000001011010000000000001011.1機(jī)器語言S=768+12288-12801.1機(jī)器語言在顯示器上輸出“welcometomasm”。
機(jī)器碼看到這樣的程序,你會(huì)有什么感想?如果程序里有一個(gè)“
1”被誤寫為“
0”,又如何去查找呢?1.1機(jī)器語言在顯示器上輸出“welcometomas1.2匯編語言的產(chǎn)生匯編語言的主體是匯編指令。匯編指令和機(jī)器指令的差別在于指令的表示方法上。匯編指令是機(jī)器指令便于記憶的書寫格式。匯編指令是機(jī)器指令的助記符。1.2匯編語言的產(chǎn)生匯編語言的主體是匯編指令。1.2匯編語言的產(chǎn)生機(jī)器指令:1000100111011000操作:寄存器BX的內(nèi)容送到AX中匯編指令:MOVAX,BX這樣的寫法與人類語言接近,便于閱讀和記憶。1.2匯編語言的產(chǎn)生機(jī)器指令:1000100111011寄存器寄存器:簡單的講是CPU中可以存儲(chǔ)數(shù)據(jù)的器件,一個(gè)CPU中有多個(gè)寄存器。AX是其中一個(gè)寄存器的代號(hào),BX是另一個(gè)寄存器的代號(hào)。更詳細(xì)的內(nèi)容我們?cè)谝院蟮恼n程中將會(huì)講到。寄存器寄存器:簡單的講是CPU中可以存儲(chǔ)數(shù)據(jù)的器件,一個(gè)CP1.2匯編語言的產(chǎn)生計(jì)算機(jī)能讀懂的只有機(jī)器指令,那么如何讓計(jì)算機(jī)執(zhí)行程序員用匯編指令編寫的程序呢?1.2匯編語言的產(chǎn)生用匯編語言編寫程序的工作過程用匯編語言編寫程序的工作過程1.3匯編語言的組成匯編語言由以下3類組成:1、匯編指令(機(jī)器碼的助記符)2、偽指令(由編譯器執(zhí)行)3、其它符號(hào)(由編譯器識(shí)別)匯編語言的核心是匯編指令,它決定了匯編語言的特性。1.3匯編語言的組成匯編語言由以下3類組成:1.4馮·諾依曼計(jì)算機(jī)馮·諾依曼計(jì)算機(jī)的基本特點(diǎn):(1)采用存儲(chǔ)程序方式,即程序和數(shù)據(jù)放在同一個(gè)存儲(chǔ)器中,程序指令和數(shù)據(jù)都用二進(jìn)制表示,兩者都可以送到CPU執(zhí)行和運(yùn)算。(2)存儲(chǔ)器是按地址訪問的,每個(gè)存儲(chǔ)單元的位數(shù)是固定的。存儲(chǔ)單元采用線性編址方式,按順序取出指令。(3)指令由操作碼和地址碼構(gòu)成。根據(jù)指令含義發(fā)出控制信號(hào)控制計(jì)算機(jī)的操作。(4)機(jī)器以運(yùn)算器為中心,輸入輸出設(shè)備都要經(jīng)過CPU與存儲(chǔ)器間進(jìn)行數(shù)據(jù)傳送。
1.4.1馮·諾依曼機(jī)原理1.4馮·諾依曼計(jì)算機(jī)馮·諾依曼計(jì)算機(jī)的基本特點(diǎn):1.4計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大部件組成。運(yùn)算器和控制器合稱為中央處理器(CPU)。
中央處理器CPU
存儲(chǔ)器
輸入輸出設(shè)備
總線及接口
1.4.2馮·諾依曼計(jì)算機(jī)的基本結(jié)構(gòu)計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大部件組內(nèi)存儲(chǔ)器InnerMemory輸入設(shè)備InputDevice中央處理器CPU輸出設(shè)備OutputDeviceD-BUSA-BUSC_BUS輸入接口輸出接口內(nèi)存儲(chǔ)器輸入設(shè)備中央處理器輸出設(shè)備D-BUSA-BUSC_B調(diào)制解調(diào)器內(nèi)存條電源
中央處理器主板光驅(qū)軟驅(qū)硬盤微型計(jì)算機(jī)的基本結(jié)構(gòu)調(diào)制解調(diào)器內(nèi)存條電源中央處理器主板光驅(qū)軟驅(qū)硬盤微型計(jì)算機(jī)的ISA插槽PCI插槽AGP插槽北橋芯片組南橋芯片組內(nèi)存插槽CPU插槽IDE接口接硬盤光驅(qū)軟驅(qū)接口并口連接器串口連接器ROMBIOS鼠標(biāo)鍵盤USB接口主板電源插座主板ISA插PCI插槽AGP插北橋南橋內(nèi)存插槽CPU插槽IDE接硬件:中央處理機(jī)
CPU總線控制邏輯接口接口存儲(chǔ)器大容量存儲(chǔ)器I/O設(shè)備I/O子系統(tǒng)系統(tǒng)總線......軟件:系統(tǒng)軟件用戶軟件硬件:中央處理機(jī)總線控制接口接口存儲(chǔ)器大容量I/O設(shè)存儲(chǔ)器I/O接口輸入設(shè)備I/O接口數(shù)據(jù)總線DB控制總線CB地址總線AB輸出設(shè)備CPU微機(jī)的硬件由CPU、存儲(chǔ)器、輸入/輸出設(shè)備構(gòu)成;輸入/輸出設(shè)備通過輸入/輸出接口與系統(tǒng)相連;
(輸入/輸出接口簡稱I/O接口)各部件通過總線連接。構(gòu)成部件存I/O輸I/O數(shù)據(jù)總線DB控制總線CB地址總線AB輸1.4存儲(chǔ)器之前簡單介紹了計(jì)算機(jī)的組成結(jié)構(gòu),接下來講匯編語言和這些器件之間的關(guān)系CPU是計(jì)算機(jī)的核心部件.它控制整個(gè)計(jì)算機(jī)的運(yùn)作并進(jìn)行運(yùn)算,要想讓一個(gè)CPU工作,就必須向它提供指令和數(shù)據(jù)。指令和數(shù)據(jù)在存儲(chǔ)器中存放,也就是平時(shí)所說的內(nèi)存。1.4存儲(chǔ)器之前簡單介紹了計(jì)算機(jī)的組成結(jié)構(gòu),接下來講匯編語1.4存儲(chǔ)器在一臺(tái)PC機(jī)中內(nèi)存的作用僅次于CPU。離開了內(nèi)存,性能再好的CPU也無法工作。1.4存儲(chǔ)器1.4存儲(chǔ)器磁盤不同于內(nèi)存,磁盤上的數(shù)據(jù)或程序如果不讀到內(nèi)存中,就無法被CPU使用。1.4存儲(chǔ)器1.5指令和數(shù)據(jù)指令和數(shù)據(jù)是應(yīng)用上的概念。在內(nèi)存或磁盤上,指令和數(shù)據(jù)沒有任何區(qū)別,都是二進(jìn)制信息。1.5指令和數(shù)據(jù)1.5指令和數(shù)據(jù)二進(jìn)制信息:
1000100111011000─>89D8H(數(shù)據(jù))
1000100111011000─>MOVAX,BX(程序)1.5指令和數(shù)據(jù)二進(jìn)制信息:1.6存儲(chǔ)單元存儲(chǔ)器被劃分為若干個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元從0開始順序編號(hào);例如:一個(gè)存儲(chǔ)器有128個(gè)存儲(chǔ)單元,編號(hào)從0~127。如右圖示:1.6存儲(chǔ)單元存儲(chǔ)器被劃分為若干個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元從1.6存儲(chǔ)單元對(duì)于大容量的存儲(chǔ)器一般還用以下單位來計(jì)量容量(以下用B來代表Byte):1KB=1024B1MB=1024KB1GB=1024MB1TB=1024GB磁盤的容量單位同內(nèi)存的一樣,實(shí)際上以上單位是微機(jī)中常用的計(jì)量單位。1.6存儲(chǔ)單元對(duì)于大容量的存儲(chǔ)器一般還用以下單位來計(jì)量容量1.7CPU對(duì)存儲(chǔ)器的讀寫CPU要想進(jìn)行數(shù)據(jù)的讀寫,必須和外部器件(標(biāo)準(zhǔn)的說法是芯片)進(jìn)行三類信息的交互:存儲(chǔ)單元的地址(地址信息)器件的選擇,讀或?qū)懨睿刂菩畔ⅲ┳x或?qū)懙臄?shù)據(jù)(數(shù)據(jù)信息)1.7CPU對(duì)存儲(chǔ)器的讀寫CPU要想進(jìn)行數(shù)據(jù)的讀寫,必須和1.7CPU對(duì)存儲(chǔ)器的讀寫那么CPU是通過什么將地址、數(shù)據(jù)和控制信息傳到存儲(chǔ)芯片中的呢?電子計(jì)算機(jī)能處理、傳輸?shù)男畔⒍际请娦盘?hào),電信號(hào)當(dāng)然要用導(dǎo)線傳送。1.7CPU對(duì)存儲(chǔ)器的讀寫那么CPU是通過什么將地址、數(shù)據(jù)1.7CPU對(duì)存儲(chǔ)器的讀寫在計(jì)算機(jī)中專門有連接CPU和其他芯片的導(dǎo)線,通常稱為總線。物理上:一根根導(dǎo)線的集合;邏輯上劃分為:地址總線數(shù)據(jù)總線控制總線圖示1.7CPU對(duì)存儲(chǔ)器的讀寫在計(jì)算機(jī)中專門有連接CPU和其他1.7CPU對(duì)存儲(chǔ)器的讀寫總線在邏輯上劃分的圖示:1.7CPU對(duì)存儲(chǔ)器的讀寫總線在邏輯上劃分的圖示:1.7CPU對(duì)存儲(chǔ)器的讀寫CPU在內(nèi)存中讀或?qū)懙臄?shù)據(jù)演示:讀演示寫演示從上面我們知道CPU是如何進(jìn)行數(shù)據(jù)讀寫的??墒俏覀?nèi)绾蚊钣?jì)算機(jī)進(jìn)行數(shù)據(jù)的讀寫呢?1.7CPU對(duì)存儲(chǔ)器的讀寫CPU在內(nèi)存中讀或?qū)懙臄?shù)據(jù)演示:1.7CPU對(duì)存儲(chǔ)器的讀寫1.7CPU對(duì)存儲(chǔ)器的讀寫1.7CPU對(duì)存儲(chǔ)器的讀寫1.7CPU對(duì)存儲(chǔ)器的讀寫1.7CPU對(duì)存儲(chǔ)器的讀寫對(duì)于8086CPU,下面的機(jī)器碼能夠完成從3號(hào)單元讀數(shù)據(jù):機(jī)器碼:101000000000001100000000含義:從3號(hào)單元讀取數(shù)據(jù)送入寄存器AXCPU接收這條機(jī)器碼后將完成上面所述的讀寫工作。1.7CPU對(duì)存儲(chǔ)器的讀寫對(duì)于8086CPU,下面的機(jī)器碼1.7CPU對(duì)存儲(chǔ)器的讀寫機(jī)器碼難于記憶,用匯編指令來表示,情況如下:機(jī)器碼:101000000000001100000000對(duì)應(yīng)的匯編指令:MOVAX,[3]含義:傳送3號(hào)單元的內(nèi)容到AX1.7CPU對(duì)存儲(chǔ)器的讀寫機(jī)器碼難于記憶,用匯編指令來表示1.8地址總線CPU是通過地址總線來指定存儲(chǔ)單元的。地址總線上能傳送多少個(gè)不同的信息,CPU就可以對(duì)多少個(gè)存儲(chǔ)單元進(jìn)行尋址。1.8地址總線CPU是通過地址總線來指定存儲(chǔ)單元的。1.8地址總線地址總線發(fā)送地址信息演示1.8地址總線1.8地址總線1.8地址總線1.8地址總線一個(gè)CPU有N根地址總線,則可以說這個(gè)CPU的地址總線的寬度為N。這樣的CPU最多可以尋找2的N次方個(gè)內(nèi)存單元。1.8地址總線一個(gè)CPU有N根地址總線,則可以說這個(gè)CPU1.9數(shù)據(jù)總線CPU與內(nèi)存或其它器件之間的數(shù)據(jù)傳送是通過數(shù)據(jù)總線來進(jìn)行的。數(shù)據(jù)總線的寬度決定了CPU和外界的數(shù)據(jù)傳送速度。1.9數(shù)據(jù)總線CPU與內(nèi)存或其它器件之間的數(shù)據(jù)傳送是通過數(shù)1.9數(shù)據(jù)總線我們來分別看一下它們向內(nèi)存中寫入數(shù)據(jù)89D8H時(shí),是如何通過數(shù)據(jù)總線傳送數(shù)據(jù)的:8088CPU數(shù)據(jù)總線上的數(shù)據(jù)傳送情況8086CPU數(shù)據(jù)總線上的數(shù)據(jù)傳送情況1.9數(shù)據(jù)總線我們來分別看一下它們向內(nèi)存中寫入數(shù)據(jù)89D81.9數(shù)據(jù)總線8位數(shù)據(jù)總線上傳送的信息1.9數(shù)據(jù)總線8位數(shù)據(jù)總線上傳送的信息1.9數(shù)據(jù)總線16位數(shù)據(jù)總線上傳送的信息1.9數(shù)據(jù)總線16位數(shù)據(jù)總線上傳送的信息1.10控制總線CPU對(duì)外部器件的控制是通過控制總線來進(jìn)行的。在這里控制總線是個(gè)總稱,控制總線是一些不同控制線的集合。有多少根控制總線,就意味著CPU提供了對(duì)外部器件的多少種控制。所以,控制總線的寬度決定了CPU對(duì)外部器件的控制能力。控制總線上發(fā)送的控制信息1.10控制總線CPU對(duì)外部器件的控制是通過控制總線來進(jìn)行1.10控制總線1.10控制總線1.10控制總線前面所講的內(nèi)存讀或?qū)懨钍怯蓭赘刂凭€綜合發(fā)出的:其中有一根名為讀信號(hào)輸出控制線負(fù)責(zé)由CPU向外傳送讀信號(hào),CPU向該控制線上輸出低電平表示將要讀取數(shù)據(jù);有一根名為寫信號(hào)輸出控制線負(fù)責(zé)由CPU向外傳送寫信號(hào)。1.10控制總線前面所講的內(nèi)存讀或?qū)懨钍怯蓭赘刂凭€綜合小結(jié)(1)匯編指令是機(jī)器指令的助記符,同機(jī)器指令一一對(duì)應(yīng)。(2)每一種CPU都有自己的匯編指令集。小結(jié)小結(jié)(3)CPU可以直接使用的信息在存儲(chǔ)器中存放。(4)在存儲(chǔ)器中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進(jìn)制信息。小結(jié)小結(jié)(5)存儲(chǔ)單元從零開始順序編號(hào)。(6)一個(gè)存儲(chǔ)單元可以存儲(chǔ)8個(gè)bit(用作單位寫成“b”),即8位二進(jìn)制數(shù)。(7)1B=8b 1KB=1024B1MB=1024KB 1GB=1024MB小結(jié)(5)存儲(chǔ)單元從零開始順序編號(hào)。小結(jié)(續(xù))(8)每一個(gè)CPU芯片都有許多管腳,這些管腳和總線相連。也可以說,這些管腳引出總線。一個(gè)CPU可以引出三種總線的寬度標(biāo)志了這個(gè)CPU的不同方面的性能:地址總線的寬度決定了CPU的尋址能力;數(shù)據(jù)總線的寬度決定了CPU與其它器件進(jìn)行數(shù)據(jù)傳送時(shí)的一次數(shù)據(jù)傳送量;控制總線寬度決定了CPU對(duì)系統(tǒng)中其它器件的控制能力。小結(jié)(續(xù))(8)每一個(gè)CPU芯片都有許
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年長春師范高等??茖W(xué)校單招職業(yè)技能考試備考題庫含詳細(xì)答案解析
- 2026年河南物流職業(yè)學(xué)院單招綜合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年黑龍江能源職業(yè)學(xué)院單招綜合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026年湖南高爾夫旅游職業(yè)學(xué)院單招職業(yè)技能考試備考題庫含詳細(xì)答案解析
- 2026年云南經(jīng)濟(jì)管理學(xué)院單招綜合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年南寧學(xué)院單招綜合素質(zhì)考試備考試題含詳細(xì)答案解析
- 2026年韶關(guān)學(xué)院單招綜合素質(zhì)筆試備考試題含詳細(xì)答案解析
- 2026年廣東碧桂園職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考試題及答案詳細(xì)解析
- 2026年廣東農(nóng)工商職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試參考題庫含詳細(xì)答案解析
- 2026年北京社會(huì)管理職業(yè)學(xué)院單招綜合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 新工會(huì)考試試題題庫工會(huì)考試試題題庫及答案解析
- 企業(yè)用車制度規(guī)范標(biāo)準(zhǔn)
- 2025-2030中國道路標(biāo)志漆市場(chǎng)運(yùn)營態(tài)勢(shì)分析與全面深度解析研究報(bào)告
- 電力網(wǎng)絡(luò)安全培訓(xùn)教學(xué)課件
- 網(wǎng)絡(luò)布線施工技術(shù)要求
- 上海市徐匯區(qū)上海中學(xué)2025-2026學(xué)年高三上學(xué)期期中考試英語試題(含答案)
- 2026年關(guān)于春節(jié)放假通知模板9篇
- 2025年地下礦山采掘工考試題庫(附答案)
- 初三畢業(yè)班寒假家長會(huì)課件
- 冀教版五年級(jí)英語下冊(cè)全冊(cè)同步練習(xí)一課一練
- 城鎮(zhèn)土地估價(jià)規(guī)程
評(píng)論
0/150
提交評(píng)論