




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理與接口技術(shù)第1章微型計(jì)算機(jī)系統(tǒng)概述教學(xué)重點(diǎn)●計(jì)算機(jī)中數(shù)的表示方法●微型計(jì)算機(jī)的系統(tǒng)組成●微型計(jì)算機(jī)的工作過(guò)程1.1計(jì)算機(jī)中數(shù)的表示方法數(shù)的表示●計(jì)算機(jī)的數(shù)制●常用編碼數(shù)制之間的轉(zhuǎn)換(整數(shù)、小數(shù))書(shū)寫(xiě)B(tài)CD碼ASCII碼漢字編碼1.1計(jì)算機(jī)中數(shù)的表示方法BCD碼BCD(binary-codeddecimal)一種用4位二進(jìn)制數(shù)字來(lái)表示一位十進(jìn)制數(shù)字的編碼。組合BCD碼(或壓縮BCD碼)未組合BCD碼(或未壓縮BCD碼)用4個(gè)二進(jìn)制位表示1個(gè)十進(jìn)制位42560100001001010110用8個(gè)二進(jìn)制位表示1個(gè)十進(jìn)制位,高4位為0425600000100000000100000010100000110十進(jìn)制數(shù)和8421BCD碼的對(duì)應(yīng)關(guān)系十進(jìn)制數(shù)8421BCD碼十進(jìn)制數(shù)8421BCD碼00000501011000160110200107011130011810004010091001BCD碼的運(yùn)算4+3=?0100+)001101114+8=?0100+)10001100十進(jìn)制調(diào)整十進(jìn)制調(diào)整規(guī)則若兩個(gè)BCD數(shù)相加,結(jié)果大于1001,則做加0110調(diào)整;若兩個(gè)BCD數(shù)相加,結(jié)果在本位上并不大于1001,但產(chǎn)生了進(jìn)位,也要做加0110調(diào)整;(注意:如果在調(diào)整過(guò)程中出現(xiàn)輔助進(jìn)位則不再用調(diào)整,但出現(xiàn)非法碼制就需要繼續(xù)調(diào)整。例:45+57=?)若兩個(gè)BCD數(shù)相加,既有進(jìn)位又有結(jié)果大于9,則先考慮進(jìn)位調(diào)整,再考慮大于9的調(diào)整。兩個(gè)BCD數(shù)相減,若低4位向高位有借位,在低4位要做減0110調(diào)整。調(diào)整舉例4+8=?0100+)10001100+)01100001001054+48=?01010100+)0100100010011100+)011010100010+)0110
000100000010ASCII碼ASCII(Americannationalstandardcodeforinformationinterchange)7位二進(jìn)制數(shù)表示,第8位常用作奇偶校驗(yàn)位。漢字編碼國(guó)標(biāo)碼國(guó)家標(biāo)準(zhǔn)《信息交換用漢字編碼》(GB2312-80)用兩個(gè)7位表示一個(gè)漢字、符號(hào)或圖形輸入碼拼音、五筆、區(qū)位內(nèi)碼不同的輸入方法,但內(nèi)碼是統(tǒng)一的;臺(tái)灣的內(nèi)碼不同(BIG5)帶符號(hào)數(shù)的表示無(wú)符號(hào)數(shù)不帶正負(fù)符號(hào)的數(shù)。計(jì)算機(jī)如何表示數(shù)的正負(fù)號(hào)?
習(xí)慣上約定最高位是符號(hào)位,0表示正數(shù),1表示負(fù)數(shù)。其余位稱為數(shù)值位。機(jī)器數(shù)與真值機(jī)器數(shù)正負(fù)符號(hào)進(jìn)行數(shù)字化的數(shù),計(jì)算機(jī)能直接識(shí)別。如01001011、10001001。真值用+、-表示的數(shù),數(shù)的真實(shí)意義。如+87,-24。原碼、反碼、補(bǔ)碼正數(shù)[x]原=[x]反=[x]補(bǔ)最高位為符號(hào)位,用0表示,其余各數(shù)值位不變。負(fù)數(shù)最高位為符號(hào)位,用1表示。
原碼:符號(hào)位為1,其余各數(shù)值位不變。
反碼:符號(hào)位為1,其余各數(shù)值位按位取反。補(bǔ)碼:符號(hào)位為1,其余各數(shù)值位按位取反再加1。
對(duì)于同一個(gè)機(jī)器數(shù),如果編碼方式不同,則對(duì)應(yīng)的真值可能不同。關(guān)于原碼、反碼、補(bǔ)碼的說(shuō)明帶符號(hào)數(shù)的表示,都是針對(duì)特定字長(zhǎng)的。如8位二進(jìn)制原碼,16位二進(jìn)制補(bǔ)碼。帶符號(hào)數(shù)的表示都是有確定范圍的,超出范圍叫溢出。大多數(shù)計(jì)算機(jī)采用補(bǔ)碼來(lái)表示帶符號(hào)數(shù),如8086/8088。1.2微型計(jì)算機(jī)的系統(tǒng)組成重要里程碑1971年,Intel公司設(shè)計(jì)了世界上第一個(gè)微處理器芯片Intel4004。1946年,世界上出現(xiàn)第一臺(tái)數(shù)字式電子計(jì)算機(jī)ENIAC。人類第一臺(tái)計(jì)算機(jī)ENIACIntel4004和計(jì)算器發(fā)展歷程第1代,4位和低檔8位微機(jī)4004→4040→8008第2代,中高檔8位微機(jī)Z80、I8085、M6800、Apple-II微機(jī)第3代,16位微機(jī)8086→8088→80286,IBMPC系列機(jī)第4代,32位微機(jī)80386→80486→Pentium→PentiumII/III/432位PC機(jī)第5代,64位微機(jī)Itanium、64位RISC微處理器芯片蘋(píng)果電腦Apple-IApple-IIIBMPC系列機(jī)8088CPUIBMPC機(jī)IBMPC/AT機(jī)IBMPC/XT機(jī)Intel系列處理器80386Pentium代發(fā)表年份字長(zhǎng)(bits)型號(hào)線寬(
m)晶體管數(shù)(萬(wàn)個(gè))時(shí)鐘頻率(MHz)速度(MIPS)一197119724840048008500.20.3<10.05二197488080200.52-40.5三19781982168086/8088802862-32.9134.77-108-20<11-2四198519893280386804861-227.512012-3325-666-1220-40五199332Pentium0.6-0.833060-200100-200六1995199619971999200132P/ProP/MMXPIIPIIIP40.60.60.35.25-.13.18-.135504507508503000133-200166-233233-450450-12001300-3000>300七2002?64Itanium?0.08CPU:2.5KCache:30K800(20條指令/時(shí)鐘周期)>3000基本概念位(bit)計(jì)算機(jī)所能表示的最小的數(shù)據(jù)單元。每個(gè)位有兩種狀態(tài),即0和1。字(word)相鄰16位二進(jìn)制位,即1W=16bit。字長(zhǎng)(wordlength)CPU內(nèi)部一次能處理的二進(jìn)制位數(shù)。字長(zhǎng)的長(zhǎng)度不固定,通常與計(jì)算機(jī)內(nèi)部寄存器、運(yùn)算器、總線的寬度一致。字節(jié)(byte)相鄰8位二進(jìn)制位,即1byte=8bit?;靖拍顔伟鍣C(jī)(SingleBoardComputer)將CPU、ROM、RAM、I/O等電路全部安裝到一塊電路板上。單片機(jī)(SingleChipComputer)將CPU、ROM、RAM、I/O電路全部集成到一塊芯片上。嵌入式系統(tǒng)(EmbeddedSystem)以應(yīng)用為中心,軟硬件可剪裁的專用計(jì)算機(jī)系統(tǒng)。微機(jī)(Microcomputer)微型計(jì)算機(jī)的簡(jiǎn)稱。計(jì)算機(jī)系統(tǒng)層次結(jié)構(gòu)微機(jī)系統(tǒng)的啟動(dòng)和操作系統(tǒng)的裝載
相關(guān)的兩個(gè)概念系統(tǒng)BIOS:BIOS是直接與硬件打交道的底層代碼,它為操作系統(tǒng)提供了控制硬件設(shè)備的基本功能。BIOS一般被存放在ROM之中,占用的地址空間為F0000H~FFFFFH。復(fù)位地址:FFFF0H。1.1.4啟動(dòng)過(guò)程第一步:當(dāng)我們按下電源開(kāi)關(guān)時(shí),CPU得到的啟動(dòng)地址為FFFF0H,CPU就會(huì)從FFFF0H處開(kāi)始取指令、執(zhí)行指令。系統(tǒng)BIOS放在這里的只是一條跳轉(zhuǎn)指令,跳到系統(tǒng)BIOS中真正的啟動(dòng)程序處。第二步:系統(tǒng)BIOS的啟動(dòng)程序首先要做的事情就是進(jìn)行加電后自檢(Power-OnSelfTest,POST)。第三步:系統(tǒng)BIOS的啟動(dòng)程序進(jìn)行的最后一項(xiàng)工作,即根據(jù)用戶指定的啟動(dòng)順序從軟盤(pán)、硬盤(pán)或光驅(qū)裝載操作系統(tǒng)。
微機(jī)硬件微型計(jì)算機(jī)系統(tǒng)的三個(gè)層次硬件系統(tǒng)軟件系統(tǒng)微型計(jì)算機(jī)系統(tǒng)微型計(jì)算機(jī)(主機(jī))外設(shè)微處理器存儲(chǔ)器I/O接口總線ALU(運(yùn)算器)寄存器組控制器鍵盤(pán)、鼠標(biāo)顯示器軟驅(qū)、硬盤(pán)、光驅(qū)打印機(jī)、掃描儀系統(tǒng)軟件應(yīng)用軟件計(jì)算機(jī)系統(tǒng)組成運(yùn)算器控制器寄存器組
內(nèi)存儲(chǔ)器總線
接口電路外部設(shè)備軟件微處理器微型計(jì)算機(jī)微型計(jì)算機(jī)系統(tǒng)微型計(jì)算機(jī)組成框圖微處理器存儲(chǔ)器總線輸入輸出設(shè)備接口微處理器組成運(yùn)算器控制器寄存器組用來(lái)進(jìn)行算術(shù)邏輯運(yùn)算和位移、循環(huán)等操作。又稱算術(shù)邏輯單元ALU,
核心是累加器。參加運(yùn)算的操作數(shù)來(lái)自累加器和內(nèi)部數(shù)據(jù)總線??刂破魇钦麄€(gè)計(jì)算機(jī)的控制、指揮中心。主要功能是控制指令執(zhí)行的過(guò)程與順序。主要由程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID和控制邏輯PLA等部件組成。通常由多個(gè)寄存器組成,主要用來(lái)暫存CPU執(zhí)行程序時(shí)的常用數(shù)據(jù)或地址??刂破鞒绦蛴?jì)數(shù)器PC控制器指令寄存器IR指令譯碼器ID控制邏輯部件PLA時(shí)序電路地址寄存器AR數(shù)據(jù)寄存器DR微處理器
ALUoI2I1
AR
DR
PC256字節(jié)RAM
RAPLA
ID
IRAL
F標(biāo)志寄存器程序指針累加器地址寄存器地址總線AB內(nèi)存寄存器組運(yùn)算器控制邏輯指令譯碼器指令寄存器數(shù)據(jù)寄存器數(shù)據(jù)總線DB系統(tǒng)總線總線(bus)總線是指?jìng)鬟f信息的一組公用導(dǎo)線。微機(jī)系統(tǒng)采用總線連接系統(tǒng)功能部件??偩€信號(hào)可分成三組:地址總線AB
:傳送地址信息數(shù)據(jù)總線DB
:傳送數(shù)據(jù)信息控制總線CB
:傳送控制信息總線還有電源、地線等其他輔助信號(hào)系統(tǒng)總線總線信號(hào)地址總線AB(addressbus)用于傳送CPU輸出將要訪問(wèn)的內(nèi)存單元或I/O端口的地址地址線的多少?zèng)Q定系統(tǒng)直接尋址存儲(chǔ)器的范圍數(shù)據(jù)總線DB(databus)CPU讀操作時(shí),外部數(shù)據(jù)通過(guò)數(shù)據(jù)總線送往CPUCPU寫(xiě)操作時(shí),CPU數(shù)據(jù)通過(guò)數(shù)據(jù)總線送往外部數(shù)據(jù)線的多少?zèng)Q定一次能夠傳送數(shù)據(jù)的位數(shù)控制總線CB(controlbus)協(xié)調(diào)系統(tǒng)中各部件的操作,用于傳送自CPU發(fā)出的控制信息或送到CPU的狀態(tài)信息??刂瓶偩€決定了系統(tǒng)總線的特點(diǎn),例如功能、適應(yīng)性等注意:通常將數(shù)據(jù)總線位數(shù)小于字長(zhǎng)的計(jì)
算機(jī)(如8088)稱為準(zhǔn)字長(zhǎng)計(jì)算機(jī)注意:數(shù)據(jù)總線的位數(shù)通常和CPU中運(yùn)算器的位數(shù)(即字長(zhǎng))相一致,但有時(shí)也不一致。數(shù)據(jù)總線:16位8086地址總線:20位16位字長(zhǎng)數(shù)據(jù)總線:8位8088地址總線:20位總線的特點(diǎn)在某一時(shí)刻,只能由一個(gè)總線主控設(shè)備(例如CPU)來(lái)控制總線。在連接系統(tǒng)總線的各個(gè)設(shè)備中,某時(shí)刻只能有一個(gè)發(fā)送者向總線發(fā)送信號(hào),但可以有多個(gè)設(shè)備從總線上同時(shí)獲取信號(hào)。優(yōu)點(diǎn)可以減少機(jī)器中的信息傳送線的根數(shù),從而簡(jiǎn)化了系統(tǒng)結(jié)構(gòu),提高了機(jī)器的可靠性。可以方便地對(duì)存儲(chǔ)器芯片及I/O接口芯片進(jìn)行擴(kuò)充。存儲(chǔ)器遵循馮.諾依曼體系結(jié)構(gòu)存儲(chǔ)程序,即將程序和數(shù)據(jù)事先寫(xiě)入存儲(chǔ)器中程序控制,即由計(jì)算機(jī)按照程序的要求自動(dòng)進(jìn)行工作存儲(chǔ)器作用:用來(lái)存放程序和數(shù)據(jù)的分類內(nèi)存(主存,簡(jiǎn)稱為存儲(chǔ)器)、外存(輔存)RAM、ROMCPU對(duì)存儲(chǔ)器的訪問(wèn)約占CPU時(shí)間的70%左右,所以存儲(chǔ)器對(duì)微機(jī)的工作效率影響很大。輸入輸出接口及外部設(shè)備CPUI/O接口I/O外部設(shè)備輸入設(shè)備鍵盤(pán)、鼠標(biāo)、掃描儀、攝像機(jī)、觸摸屏等輸出設(shè)備顯示器、打印機(jī)、繪圖儀、音響設(shè)備等軟件系統(tǒng)的組成操作系統(tǒng)MS-DOS、Windows、Linux/Unix計(jì)算機(jī)語(yǔ)言及其編譯處理系統(tǒng)機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言匯編程序、解釋程序、編譯程序應(yīng)用軟件和工具軟件科學(xué)計(jì)算、財(cái)會(huì)軟件、繪圖、辦公、網(wǎng)絡(luò)等指令的工作過(guò)程基本思想存儲(chǔ)程序、程序控制指令是指定計(jì)算機(jī)完成某一特定操作的命令,由二進(jìn)制編碼組成。 →機(jī)器碼為方便記憶,常用英文縮寫(xiě)為指令的助記符號(hào)。 →匯編指令過(guò)程讀取指令 →取指執(zhí)行指令 →執(zhí)指模擬機(jī)存儲(chǔ)結(jié)構(gòu)存儲(chǔ)單元內(nèi)容(指令、數(shù)據(jù))地址:從0開(kāi)始的無(wú)符號(hào)整數(shù)02H單元存放有一個(gè)數(shù)據(jù)34H,表示為[02H]=34H兩個(gè)完全不同的概念準(zhǔn)備舉例:7+10=?準(zhǔn)備工作編寫(xiě)匯編源程序。翻譯(匯編)成機(jī)器語(yǔ)言指令。將數(shù)據(jù)和程序通過(guò)輸入設(shè)備送至存儲(chǔ)器中。程序一共3條指令,5個(gè)字節(jié)。假設(shè)它們存放在從00H單元開(kāi)始的連續(xù)5個(gè)存儲(chǔ)單元中。第1條指令的取指過(guò)程第1條指令的執(zhí)行過(guò)程第2條指令的取指過(guò)程第2條指令的執(zhí)行過(guò)程8086/8088微處理器內(nèi)部結(jié)構(gòu)8086CPU由兩個(gè)獨(dú)立的處理部件組成:執(zhí)行部件EU(
ExecutionUnit)總線接口部件BIU(BusInterfaceUnit)8086/8088微處理器內(nèi)部結(jié)構(gòu)負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算EU負(fù)責(zé)全部指令的執(zhí)行;向BIU輸出數(shù)據(jù)(操作結(jié)果);在ALU中進(jìn)行16位運(yùn)算(數(shù)據(jù)運(yùn)算和操作數(shù)偏移地址的運(yùn)算),數(shù)據(jù)傳送和處理;EU的作用8086/8088微處理器內(nèi)部結(jié)構(gòu)BIU負(fù)責(zé)完成所有的總線操作。根據(jù)EU計(jì)算出來(lái)的16位地址和16位段地址計(jì)算20位物理地址,負(fù)責(zé)訪問(wèn)內(nèi)存或輸入/輸出接口,
取出數(shù)據(jù)送指令隊(duì)列,供EU執(zhí)行/將EU的結(jié)果送到指定位置。BIU的作用8086/8088微處理器內(nèi)部結(jié)構(gòu)EU和BIU兩個(gè)單元在大多數(shù)情況下獨(dú)立操作,還可以并行執(zhí)行,實(shí)現(xiàn)指令預(yù)?。ㄖ噶钭x取和執(zhí)行的流水線操作)指令隊(duì)列122333445取指令取指取指取指取指…
EU等待執(zhí)行1執(zhí)行2執(zhí)行3
…時(shí)間BIU8088的指令執(zhí)行過(guò)程1.2.2寄存器介紹1.2.2寄存器介紹通用寄存器控制寄存器段寄存器寄存器介紹1.2.2.1通用寄存器8088有8個(gè)通用的16位寄存器(1)數(shù)據(jù)寄存器:AXBXCXDX(2)變址寄存器:SIDI(3)指針寄存器:BPSP4個(gè)數(shù)據(jù)寄存器還可以分成高8位和低8位兩個(gè)獨(dú)立的寄存器,這樣又形成8個(gè)通用的8位寄存器AX:AHAL BX:BHBLCX:CHCL DX:DHDL(1)數(shù)據(jù)寄存器AX稱為累加器(Accumulator)使用頻率最高。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等
BX稱為基址寄存器(BaseaddressRegister)常用做存放存儲(chǔ)器地址
CX稱為計(jì)數(shù)器(Counter)作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器
DX稱為數(shù)據(jù)寄存器(Dataregister)常用來(lái)存放雙字長(zhǎng)數(shù)據(jù)的高16位,或存放外設(shè)端口地址數(shù)據(jù)寄存器(2)變址寄存器16位變址寄存器SI和DI常用于存儲(chǔ)器變址尋址方式時(shí)提供地址SI是源地址寄存器(SourceIndex)DI是目的地址寄存器(DestinationIndex)在串操作類指令中,SI、DI還有較特殊的用法變址寄存器(3)指針寄存器指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)SP為堆棧指針寄存器(StackPointer),指示堆棧段棧頂?shù)奈恢茫ㄆ频刂罚〣P為基址指針寄存器(BasePointer),表示數(shù)據(jù)在堆棧段中的基地址SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲(chǔ)單元地址指針寄存器堆棧(Stack)是主存中一個(gè)特殊的區(qū)域,采用“先進(jìn)后出”或“后進(jìn)先出”存取操作方式。用8088/8086形成的微機(jī)系統(tǒng)中,堆棧區(qū)域被稱為堆棧段。1.2.2.2控制寄存器——(1)指令指針寄存器IPIP(InstructionPointer)為指令指針寄存器,指示主存儲(chǔ)器指令的位置隨著指令的執(zhí)行,IP將自動(dòng)修改以指示下一條指令所在的存儲(chǔ)器位置IP寄存器是一個(gè)專用寄存器IP寄存器與CS段寄存器聯(lián)合使用以確定下一條指令的存儲(chǔ)單元地址控制寄存器——IP1.2.2.2控制寄存器——(2)標(biāo)志寄存器FRFR是16位程序狀態(tài)標(biāo)志寄存器(程序狀態(tài)字PSW)存放8086/8088CPU工作過(guò)程中的狀態(tài),用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式
程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)控制寄存器——FR(2)標(biāo)志寄存器FR狀態(tài)標(biāo)志—用來(lái)記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CFZFSFPFOFAF控制標(biāo)志—可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式DFIFTFOF11R1512DF10IF9TF8SF7ZF6U5AF4U3PF2U1CF0控制寄存器——FR標(biāo)志位介紹進(jìn)位標(biāo)志CF(CarryFlag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF=1;否則CF=03AH+7CH=B6H, 沒(méi)有進(jìn)位:CF=0AAH+7CH=(1)26H, 有進(jìn)位:CF=1進(jìn)位標(biāo)志CF(CarryFlag)零標(biāo)志ZF(ZeroFlag)若運(yùn)算結(jié)果為0,則ZF=1;否則ZF=03AH+7CH=B6H,結(jié)果不是零:ZF=084H+7CH=(1)00H,結(jié)果是零:ZF=1
注意:ZF為1表示的結(jié)果是0零標(biāo)志ZF(ZeroFlag)符號(hào)標(biāo)志SF(SignFlag)運(yùn)算結(jié)果最高位為1,則SF=1;否則SF=03AH+7CH=B6H,最高位D7=1:SF=184H+7CH=(1)00H,最高位D7=0:SF=0
有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)符號(hào)標(biāo)志SF(SignFlag)奇偶標(biāo)志PF(ParityFlag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為零或偶數(shù)時(shí),PF=1;否則PF=03AH+7CH=B6H=10110110B結(jié)果中有5個(gè)“1”,是奇數(shù):PF=0
PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)是
偶或奇,即使是進(jìn)行16位字操作奇偶標(biāo)志PF(ParityFlag)溢出標(biāo)志OF(OverflowFlag)若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1;否則OF=03AH+7CH=B6H,產(chǎn)生溢出:OF=1AAH+7CH=(1)26H,沒(méi)有溢出:OF=0?溢出標(biāo)志OF(OverflowFlag)什么是溢出?處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位表達(dá)的整數(shù)范圍是:+127~-12816位表達(dá)的范圍是:+32767~-32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說(shuō)明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確3AH+7CH=B6H,就是58+124=182,已經(jīng)超出-128~+127,產(chǎn)生溢出,故OF=1補(bǔ)碼B6H表達(dá)真值是-74,顯然運(yùn)算結(jié)果也不正確什么是溢出?溢出和進(jìn)位的區(qū)別溢出標(biāo)志OF和進(jìn)位標(biāo)志CF是兩個(gè)意義不同的標(biāo)志進(jìn)位標(biāo)志表示無(wú)符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確?溢出與進(jìn)位的區(qū)別溢出和進(jìn)位的對(duì)比例1:3AH+7CH=B6H無(wú)符號(hào)數(shù)運(yùn)算: 58+124=182
范圍內(nèi),無(wú)進(jìn)位有符號(hào)數(shù)運(yùn)算:58+124=182
范圍外,有溢出例2:AAH+7CH=(1)26H無(wú)符號(hào)數(shù)運(yùn)算: 170+124=294
范圍外,有進(jìn)位有符號(hào)數(shù)運(yùn)算: -86+124=38
范圍內(nèi),無(wú)溢出溢出與進(jìn)位的對(duì)比溢出和進(jìn)位的應(yīng)用場(chǎng)合應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來(lái)決定。也就是說(shuō),如果將參加運(yùn)算的操作數(shù)認(rèn)為是無(wú)符號(hào)數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號(hào)數(shù),則要注意是否溢出溢出與進(jìn)位的應(yīng)用場(chǎng)合例1:3AH+7CH=B6H例2:AAH+7CH=26H例3:3AH-7CH=BEH例4:AAH-7CH=2EH溢出的判斷判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡(jiǎn)單的規(guī)則:當(dāng)兩個(gè)相同符號(hào)數(shù)相加,而運(yùn)算結(jié)果的符號(hào)與加數(shù)、被加數(shù)的符號(hào)不同時(shí),產(chǎn)生溢出;當(dāng)兩個(gè)異號(hào)數(shù)相減,運(yùn)算結(jié)果若與被減數(shù)符號(hào)不同,則產(chǎn)生溢出;其它情況下,則不會(huì)產(chǎn)生溢出溢出溢出溢出的判斷無(wú)溢出無(wú)溢出輔助進(jìn)位標(biāo)志AF(AuxiliaryCarryFlag)3AH+7CH=B6H,D3有進(jìn)位:AF=1運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF=1;否則AF=0這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶一般不必關(guān)心輔助進(jìn)位標(biāo)志AF(AuxiliarycarryFlag)方向標(biāo)志DF(DirectionFlag)用于串操作指令中,控制地址的變化方向:設(shè)置DF=0,存儲(chǔ)器地址自動(dòng)增加;設(shè)置DF=1,存儲(chǔ)器地址自動(dòng)減少CLD指令復(fù)位方向標(biāo)志:DF=0STD指令置位方向標(biāo)志:DF=1方向標(biāo)志DF(DirectionFlag)中斷允許標(biāo)志IF(Interrupt-enableFlag)控制可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置IF=1,則允許中斷;設(shè)置IF=0,則禁止中斷CLI指令復(fù)位中斷標(biāo)志:IF=0STI指令置位中斷標(biāo)志:IF=1中斷允許標(biāo)志IF(Interrupt-enableFlag)陷阱標(biāo)志TF(TrapFlag)用于控制處理器進(jìn)入單步操作方式:設(shè)置TF=0,處理器正常工作;設(shè)置TF=1,處理器單步執(zhí)行指令單步執(zhí)行指令——處理器在每條指令執(zhí)行結(jié)束時(shí),便產(chǎn)生一個(gè)編號(hào)為1的內(nèi)部中斷這種內(nèi)部中斷稱為單步中斷所以TF也稱為單步標(biāo)志利用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試這種逐條指令調(diào)試程序的方法就是單步調(diào)試陷進(jìn)標(biāo)志TF(TrapFlag)1.2.2.3段寄存器8086/8088有4個(gè)16位段寄存器:代碼段寄存器CS(CodeSegment),數(shù)據(jù)段寄存器DS(DataSegment),堆棧段寄存器SS(StackSegment)附加數(shù)據(jù)段寄存器ES(ExtraSegment)為什么需要設(shè)置段寄存器??存儲(chǔ)器尋址機(jī)制8086:20位地址信息,lMB字節(jié),但內(nèi)部只能進(jìn)行16位運(yùn)算,這就是說(shuō)它能處理的地址信息僅16位。為解決這一矛盾,把存儲(chǔ)器劃分為“段”,每個(gè)段的實(shí)際長(zhǎng)度≤64KB。表示不同段的段地址,分別存放于四個(gè)段寄存器(CS、DS、SS、ES)中。為什么必須對(duì)存儲(chǔ)器分段管理??1.2.3存儲(chǔ)器尋址機(jī)制存儲(chǔ)器是計(jì)算機(jī)存儲(chǔ)信息的地方。掌握數(shù)據(jù)存儲(chǔ)格式,以及存儲(chǔ)器的分段管理對(duì)以后的匯編程序設(shè)計(jì)非常重要你能區(qū)別寄存器、存儲(chǔ)器(主存)、外存(包括硬盤(pán)、光盤(pán)、磁帶等存儲(chǔ)介質(zhì))嗎?寄存器、存儲(chǔ)器和外存的區(qū)別寄存器是微處理器(CPU)內(nèi)部暫存數(shù)據(jù)的存儲(chǔ)單元,以名稱表示,例如:AX,BX..….等;存儲(chǔ)器也就是平時(shí)所說(shuō)的主存,也叫內(nèi)存,可直接與CPU進(jìn)行數(shù)據(jù)交換。主存利用地址區(qū)別;外存主要指用來(lái)長(zhǎng)久保存數(shù)據(jù)的外部存儲(chǔ)介質(zhì),常見(jiàn)的有硬盤(pán)、光盤(pán)、磁帶、U盤(pán)等。外存的數(shù)據(jù)只能通過(guò)主存間接地與CPU交換數(shù)據(jù);程序及其數(shù)據(jù)可以長(zhǎng)久存放在外存,在運(yùn)行需要時(shí)才進(jìn)入主存。存儲(chǔ)單元及其存儲(chǔ)內(nèi)容每個(gè)存儲(chǔ)單元都有一個(gè)編號(hào);被稱為存儲(chǔ)器地址每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的內(nèi)容00002H單元存放有一個(gè)數(shù)據(jù)34H表達(dá)為:[00002H]=34H00006H78H00005H56H00004H12H00003H34H00002H00001H00000H多字節(jié)數(shù)據(jù)存放方式多字節(jié)數(shù)據(jù)在存儲(chǔ)器中占連續(xù)的多個(gè)存儲(chǔ)單元:存放時(shí),低字節(jié)存入低地址,高字節(jié)存入高地址;表達(dá)時(shí),用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間圖中00002H“字節(jié)”單元的內(nèi)容為:[00002H]=34H00002H“字”單元的內(nèi)容為:[00002H]=1234H00002H號(hào)“雙字”單元的內(nèi)容為:[00002H]=78561234H00006H78H00005H56H00004H12H00003H34H00002H00001H00000H在計(jì)算機(jī)的內(nèi)存中存放著三類信息:代碼:即指令操作碼,指出CPU執(zhí)行什么操作;數(shù)據(jù):即數(shù)值和字符等,程序加工對(duì)象;堆棧:即臨時(shí)保存的返回地址和中間結(jié)果。為了避免混淆,這三類信息分別存放在各自的存儲(chǔ)區(qū)域內(nèi)。段寄存器指示這些存儲(chǔ)區(qū)域段地址。物理地址和邏輯地址物理地址是存儲(chǔ)器中某一單元的實(shí)際地址,用20位地址碼表示,用16進(jìn)制表示是00000H
FFFFFH中的一個(gè)單元,CPU訪問(wèn)存儲(chǔ)器時(shí),地址總線上送出的是物理地址.PA=(段地址)×10H+偏移地址編制程序時(shí),則采用邏輯地址,邏輯地址由段地址和偏移地址(偏移量)組成。邏輯地址=段地址:偏移地址有效地址EA邏輯地址段起始地址(段首地址/段基址)的高16位稱為段地址段基地址說(shuō)明邏輯段在主存中的起始位置8088規(guī)定段基地址必須是16的整數(shù)倍:xxxx0H省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位段寄存器表達(dá)段地址偏移地址說(shuō)明主存單元距離段起始位置的偏移量每段不超過(guò)64KB,偏移地址也可用16位數(shù)據(jù)表示物理地址和邏輯地址之間的轉(zhuǎn)換關(guān)系已知一個(gè)存儲(chǔ)單元的邏輯地址為:1380H:0F00H,請(qǐng)計(jì)算其物理地址?將邏輯地址中的段地址左移4位(二進(jìn)制),加上偏移地址就得到20位物理地址段基址150偏移地址150段基址
000015030物理地址190+E.g.物理地址14700H邏輯地址1460H:100H物理地址和邏輯地址E.g.物理地址14700H邏輯地址1450H:200H一個(gè)物理地址可以有多個(gè)邏輯地址段寄存器8088有4個(gè)16位段寄存器CS(代碼段)指明當(dāng)前代碼段的段地址SS(堆棧段)指明當(dāng)前堆棧段的段地址DS(數(shù)據(jù)段)指明當(dāng)前數(shù)據(jù)段的段地址ES(附加段)指明當(dāng)前附加段的段地址每個(gè)段寄存器用來(lái)確定一個(gè)邏輯段的段地址,每種邏輯段均有各自的用途代碼段寄存器CS(CodeSegment)代碼段用來(lái)存放程序的指令序列代碼段寄存器CS存放代碼段的段地址指令指針寄存器IP指示下一條指令的偏移地址處理器利用CS:IP取得下一條要執(zhí)行的指令地址代碼段寄存器CS(CodeSegment)堆棧段寄存器SS(StackSegment)堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器SS存放堆棧段的段地址堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂诽幚砥骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù)堆棧段寄存器SS(StackSegment)數(shù)據(jù)段寄存器DS(DataSegment)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)數(shù)據(jù)段寄存器DS(DataSegment)附加段寄存器ES(ExtraSegment)附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段寄存器ES存放附加段的段地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器中操作數(shù)的偏移地址處理器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域附加段寄存器ES(ExtraSegment)如何分配各個(gè)邏輯段程序的指令序列必須安排在代碼段程序使用的堆棧一定在堆棧段程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京2025年北京市勞動(dòng)人民文化宮事業(yè)單位招聘6人筆試歷年參考題庫(kù)附帶答案詳解
- 養(yǎng)豬場(chǎng)買賣合同正規(guī)范例二零二五年
- 二零二五商廳出租合同
- 房屋轉(zhuǎn)租合同范例
- 二手房買賣全款合同范例
- 二零二五版全新物業(yè)管理車位協(xié)議
- 水稻種植回收合同書(shū)
- 民用航空法基礎(chǔ) 教案 - 模塊7-13 民用航空運(yùn)輸合同法律制度-法律責(zé)任
- 商務(wù)談判信息精密管理
- 鄉(xiāng)村小鎮(zhèn)美術(shù)課件
- 北京海淀區(qū)2021年中考英語(yǔ)二模試題及答案
- GB/T 13962-2009光學(xué)儀器術(shù)語(yǔ)
- 高耗能落后機(jī)電設(shè)備(產(chǎn)品)淘汰目錄(第四批)
- 自考高級(jí)英語(yǔ)上下冊(cè)中英翻譯
- XX化工有限責(zé)任公司維保方案
- 基礎(chǔ)會(huì)計(jì)課件(完整版)
- 品質(zhì)異常處罰細(xì)則及獎(jiǎng)罰制度
- 二年級(jí)下冊(cè)心理健康教案-第二十四課 幫爸爸媽媽分擔(dān) 媽媽謝謝您|北師大版
- 人教PEP版五年級(jí)英語(yǔ)下冊(cè)-《課時(shí)學(xué)練測(cè)》全冊(cè)含答案
- 鍋爐水冷壁安裝作業(yè)指導(dǎo)書(shū)
- 《雷鋒叔叔_你在哪里》說(shuō)課稿
評(píng)論
0/150
提交評(píng)論