《計算機組成原理》_第1頁
《計算機組成原理》_第2頁
《計算機組成原理》_第3頁
《計算機組成原理》_第4頁
《計算機組成原理》_第5頁
已閱讀5頁,還剩365頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

電大清水縣工作 張世80X86808680X8680868086軟盤、硬盤和CD-ROM第1第1第1 子數(shù)字計算機:“埃尼阿克”(ENIAC,即ElectronicNumericalIntegratorandCalculator,電子數(shù)字積分計算機)。40萬美元。采用18000只電子管,70000個電阻,10000支電ENIAC的不足:運算速度慢、存儲容量小、全部指令沒19466月,美籍匈牙利科學家馮·諾依曼(Johe指令和數(shù)據(jù)存儲在計算機內部存儲器中,能自動依次執(zhí)行第四代(1971年-):大規(guī)模和超大規(guī)模集成電路計算機大的集成度越來越高。Intel公司推出了微處理器,誕生了微型計計算機網絡階段(1991年至今今后計算機應用的主流是計算機與通信相結合的網絡神經網絡計算機:建立在人工神經網絡研究的基礎上,從內部基本結構來模擬人腦的神經系統(tǒng)。用簡單的數(shù)據(jù)處理單元模擬人腦的神經元,并利用神經元節(jié)點的分布生物計算機:使用由生物工程技術產生的蛋白分子為材料的“生物芯片”,不僅具有巨大的存儲能力,而且能以波的形式傳播信息。由于它具備生物體的某些機能,所光子計算機:用光子代替電子,用光互連代替導線互信息化就是全面發(fā)展和利用現(xiàn)代信息技術,借以提高人類社會的生產、工作、學習、生活等諸方面的效率和創(chuàng)造能計算精度高:普通微型計算機的計算精度已達具有“記憶”和邏輯判斷功能:“記憶”功能指的是計算機能夠存儲大量信息,供用戶隨時檢索和查詢。邏輯判斷功能指的是計算機不僅能夠進行算術運算,還能進行邏輯運算和實踐推理。記憶功能、算術運算和邏輯運算相結合,使得計算機能夠模仿人類的某些智能活動,成為人類腦力延伸的主要工具,所以計算機又稱 2個人計算機:面向個人或家庭使用的低檔微型計算工作站:介于PC小型計算機:結構簡單、成本較低、易維護和使用。主機:具有大容量存儲器,多種類型的I/O通道,能同時支持批處理和分時處理等多種工作方式。其規(guī)模和小巨型計算機:也稱為桌上型超級計算機。最大的特巨型計算機:也稱為超級計算機。具有極高的性能和科學計算:也稱為數(shù)值計算,是指用計算機來解決科學研數(shù)據(jù)處理:數(shù)據(jù)處理也稱為信息處理,是人們利用計算機對所獲取的信息進行采集、記錄、整理、加工、存儲和傳過程控制:過程控制是用傳感器在現(xiàn)場采集受控對象的數(shù)據(jù),通過比較器求出與設定數(shù)據(jù)的偏差,由計算機按控制模型進行計算,產生相應的控制信號,驅動伺服裝置對受計算機輔助系統(tǒng):是采用計算機進行各種輔助功能的系人工智能:是用計算機執(zhí)行某些與人的智能活動有關的復雜功能,模擬人類的某些智力活動,如圖形和聲音的識輸入設備:用于輸入原始信息和處理信息的程序。如鍵輸出設備:用來輸出計算機的處理結果及程序清單。如存儲器:用來存放程序和數(shù)據(jù)。在控制器的控制下,可運算器:用來對信息及數(shù)據(jù)進行處理和計算。也稱為算術邏輯部件ALU(ArithmeticandLogicUnit)。控制器:是整個計算機的指揮中心,用來指揮計算機各把事先編制好的由計算機指令組成的程序存放到存儲器內,計算機在運算時依次取出指令,根據(jù)指令程序在執(zhí)行前先裝入內存儲器,CPU負責從內存中逐條取出指令,分析識別指令,最后執(zhí)行指令,從取指令—分析指令—將傳統(tǒng)計算機的運算器和控制器集成在一塊大規(guī)模集成電(Microprocessor)按照計算機CPU、字長和功能劃分,經歷了5第一代(1971年~1973年):4位和8第二代(1974年~1978年):8第三代(1978年~1980年):16第四代(1981年~1992年):32第五代(1993年以后):有4位、8位、16位、32位、64

硬件的基本功能是接受計算機程序,并在程序軟件系統(tǒng)基本功能保證計算機硬件的功能得以計算機的硬件和軟件二者缺一不可,否則不能I/O中央處理單元CPU(ControlProcessingUnit)是微隨機存儲器RAM(RandomAccessMemory)只讀存儲器ROM(ReadOnlyMemory)系統(tǒng)總線是CPU與其他部件之間傳送數(shù)據(jù)、地址和控制數(shù)據(jù)總線DB(DataBus):用于CPU與主存儲器、地址總線AB(AddressBus):用于CPU訪問主存儲器和控制總線CB(ControlBus):用于傳送CPU對主存儲器輸入/輸出接口電路也稱為I/O(Input/Output)電路,即通常所說的適配器、適配卡或接口卡。它是微型計算機外磁盤存儲器由磁盤、磁盤驅動器和驅動器接口電路組辦公自動化:簡稱為OA(OfficeAutomation)。它是生產自動化:包括計算機輔助設計、計算機輔助制造遠程教育:遠程教育是建立在互聯(lián)網上的一種教學環(huán)境。它以現(xiàn)代化的信息技術為手段,以適合遠程傳輸和交互第2章第2章第2章 任何一種數(shù)制表示的數(shù)都可以寫成按位權展開的多項式之式中:n——十六進制數(shù)100可寫成如:(1011)2表示二進制數(shù)的(2DF2)16表示十六進制數(shù)的采用基數(shù)8或基數(shù)16組,不足3位數(shù)的補0,然后將每組用1將每位八進制數(shù)用3將每位十六進制數(shù)用4【例2.1】將十進制整數(shù)(105)10轉換為二進制整2︳2︳52 余數(shù)為2︳26 余數(shù)為2︳13 余數(shù)為2︳6 余數(shù)為2︳3 余數(shù)為2︳1 余數(shù)為 余數(shù)為所以 取整數(shù)位 取整數(shù)位 取整數(shù)位 如果出現(xiàn)乘積的小數(shù)部分一直不為“0”16︳16︳146 余數(shù)為11(十六進制數(shù)為16︳9 余數(shù)為 余數(shù)為所以正數(shù)的補碼與其原碼相同,負數(shù)的補碼為其反碼在最低位加1【例2.15】(1)X=+1011011,求其原碼、補碼。 (2)Y=-1011011, 則:8位二進制補碼表示的整數(shù)范圍是-128~+12716位二進制補碼表示的整數(shù)范圍是-32768~+32767在計算機內部表示二進制數(shù)的方法稱為數(shù)值編碼,把一個數(shù)及其符號在機器中的表示加以數(shù)值化,稱為機器數(shù)。機器數(shù)所代表的字長為8位,無符號整數(shù)的最大值是(11111111)B=(255)在算術運算中,數(shù)據(jù)是有正有負的,將這類數(shù)據(jù)稱為為了在計算機中正確地表示帶符號數(shù),通常規(guī)定每個一種規(guī)定小數(shù)點的位置固定不變,這時的機器數(shù)稱為正數(shù)的符號位為0,負數(shù)的符號位為1,其它位按照一般的方法來表示數(shù)的絕對值。用這樣的表示方法得到的就【例2.13】當機器字長為8 [X]原碼 16【例2.14】當機器字長為8[X]原碼[Y]原碼 負數(shù)的反碼與負數(shù)的原碼有很大的區(qū)別,反碼通常用作正數(shù)的補碼與其原碼相同,負數(shù)的補碼為其反碼在最低位加1【例2.15】 (2)(1)根據(jù)定義有:[X]原碼 [X]補碼 [Y]反碼補碼表示的整數(shù)范圍是-2n-1~+(2n-1-1),其中n為 ASCII(AmericanStandardCodeforInformationInterchange)碼34105232BCD(Binary-CodedDecimal)碼又稱為“二—十進制編每一位數(shù)采用4位二進制數(shù)來表示,即一個字節(jié)表示2位十進制數(shù)。例如:二進制數(shù)10001001B,采用壓縮BCD碼表示為十每一位數(shù)采用8位二進制數(shù)來表示,即一個字節(jié)表示1位十

計算機處理漢字信息的前提條件是對每個漢字進行編系統(tǒng)工作時,漢字信息在系統(tǒng)的各部分之間傳送,它到達某個部分就要用該部分所規(guī)定的漢字代碼表示漢字。因此,漢字信息在系統(tǒng)內傳送的過程就是漢字代碼轉換的過漢字交換碼是漢字信息處理系統(tǒng)之間或通信系統(tǒng)之間傳輸信息GB2312-80)。共收錄漢字和圖形符號7445個。其中:一將GB2312-80全部字符集組成一個94×94的方陣,每一行稱為一個“區(qū)”,編號從01~94;每一列稱為一個“位”,編號也是從01~94。這樣,每一個字符便具有一個區(qū)碼第380X868086808680286、80386、8048616時鐘頻率為5MHz~10MHz,基本指令執(zhí)行時間為16根數(shù)據(jù)線和20根地址線,可尋址的地址空間達線制輯ALU數(shù)據(jù)總線(16位執(zhí)行指令所需的數(shù)據(jù),都由EU向BIU發(fā)出命令,對存儲器

指針和變址寄存器包括指針寄存器SP、BPSI、DI,都是16表3.1變量移位,循字乘,字除,數(shù)據(jù)串操作指數(shù)據(jù)串操作指指令指針寄存器IP:是一個16位的寄存器,存放EU要執(zhí)標志寄存器F:是一個16位的寄存器,共9個標志,其中6CFPFAFDF(1)代碼段寄存器 (2)數(shù)據(jù)段寄存器(3)堆棧段寄存器 (4)附加段寄存器ADADADADADADADADADAD0

V(VA17/S4BHE/S DT/R(S1)DEN(S0)存儲器是按字節(jié)進行組織的,兩個相鄰的字節(jié)被稱為一個“字”。存放的信息若是以字節(jié)(8位)為單位的,將在存儲器中按順序排列存放;若存放的數(shù)據(jù)為一個字(16位)時,則將每一個字的低字節(jié)(低8位)存放在低地址庫。低位庫固定與8086CPU的低位字節(jié)數(shù)據(jù)線D7~D0相連,因此又可稱它為低字節(jié)存儲體,該存儲體中的每個地址均為偶地址。高位庫與8086CPU的高位字節(jié)數(shù)據(jù)線D15~D8相連,因此又稱它為高字節(jié)存儲體,該存儲體中的(位(位8086邏輯段1邏輯段2邏輯段3邏輯段43-10

邏輯段邏輯段邏輯段邏輯段

圖3-128284A地址1.80286(24種

INTR

80286靈活的32位微處理器,提供32提供3232Mbps具有實地址方式、保護方式和虛擬8086在目標碼一級與8086、80286

分頁虛擬存儲管理和80387完全的32復 虛擬8086信虛擬8086修改CR0

第4章8086第4章8086 8086 機器指令:指揮計算機完成某 從計算機組成的層次結構來OPD 4.2.3I/O 立即尋址方式中,指令操作碼和操作數(shù)都在【例4.1【例2.5】MOVAX該例中源操作數(shù)為立即尋址方式,立即數(shù) 寄存器尋址方式的操作數(shù)在指令指 匯編格式:R 其中R表示寄存器 功能:操作數(shù)直接存放在寄存器R【例4.2下列程序執(zhí)行后MOVMOVADD令AX、BX皆為目的操作數(shù)地址,為寄存器尋址方式。第三條指令中,AX為目的操作數(shù)地址,BX為源操作數(shù)地址。源地址②段寄存器名:[EA]功能:指令下一字單元的內容是操作數(shù)的【例4.3【例4.3】寄存器和存儲器內容為:(AX2000H(DS)=3000H(32000H執(zhí)行指令:MOVAX 功能:操作數(shù)存放在存儲器,寄存例如:MOV若(DS)=2000H,(BX)=1000H,物理地址=20000H+1000H=21000H。指令執(zhí)行前,(AX)=2030H,(21000H)=0A0H,(21001H)=50H,指令執(zhí)行后,(AX)=50A0H,(21000H)=0A0H,(21001H)=50H數(shù)據(jù)段數(shù)據(jù)段物理地址

[BX]BX作間址寄存器。 執(zhí)行指令:MOVAX執(zhí)行后:(AX)=?,(BP)=?,(SS)=?,寄存器相對尋址方式是在指令中給定一個基址寄存器(或變址寄存器)名和一個8位或16匯編格式:X[R](X表示位移量,是8位或功能:操作數(shù)存放在存儲器,寄存器R【例4.5 執(zhí)行后:(AX)(BX)功能:操作數(shù)存放在存儲器,BR的內容加IR的內【例4.6例如MOV 若指令執(zhí)行前,=0010H,(SI)=0002H,(10012H)=則EA=(BX)+(SI)=0012H,PA=按前述規(guī)定:若選用BP作間址基址寄存器、變的物理地址PA由堆棧段寄存器SS的內容左移4位與偏數(shù)的物理地址PA由數(shù)據(jù)段寄存器DS的內容左移4位與【例4.7 該例中,DS:,SS:均為跨段前綴,此時默認狀態(tài)無效,操作數(shù)的物理地址PA由段寄存器內容左移4位加偏移EA形成。上述2條指令的源操作數(shù)物理地址分別PA1=(DS)左移4位PA2=(SS)左移4位問。I/O端口尋址只用于這兩種指令中。尋址方式有如下兩1.在指令中直接給出端口地址,端口地址一般采用2位十六進制數(shù),也可以用符號表示,這種尋址方式為直接端口尋址。因此,直接端口尋址可訪問的端口數(shù)為0~255例如:IN2.如果訪問的端口地址值大于255,則必須用I/O端口的間接尋址方式。所謂間接尋址,是指把I/O端口的地址先送到DX中,用DX作間接尋址寄存器,而且只能用DX寄存例如:MOV8086包括數(shù)據(jù)傳送類指令、算術運算類指12341(2)PUSH語句格式:MOV功能:將源操作數(shù)傳送入目的地下圖4.1描述了MOV指令在傳送數(shù)圖4.1MOVMOVregMOVmem(reg),reg4)MOVmemMOV MOVregMOV MOVmemES2.數(shù)據(jù)交換指令語句格式:XCHG功能:將源地址與目的地址中的內容互換。即(OPD)→OPS,(OPS)→OPD【例4.9 BX,0FFFFH ;(AX) (進棧指令語句格式PUSH功能:將寄存器、段寄存器或存儲器中的一個字數(shù)據(jù)壓入堆棧,堆棧即:①(SP)SP(OPS)出棧指令POP功能:將棧頂元素彈出送至某一寄存器、段寄存器(除CS外)或存儲器,堆棧指針從POP指令功能可看出,該指令為PUSH指令 2.輸入指令語句格式 功能 語句格式 功能 語句格式 功能 語句格式 功能 輸出指令 語句格式:XLATOPS或功能:將(BX)為首址(AL)為位移量的字節(jié)存儲單元中的數(shù)據(jù)送AL寄存器。即([BX+AL])3(1)(2)傳送有效地址及數(shù)據(jù)段首址指令(3)傳送有效地址及附加數(shù)據(jù)段指令LEA功能:主存按源地址的尋址方式計算偏MOVBX,0100HMOVSI,0210H;(SI)LEABX,1234[BX+SI] (BX語句格式:LDS功能:將主存中指定字單元數(shù)據(jù)送入指定存儲器,下一字單元數(shù)語句格式:LES存器。即(OPS)→OPD,(OPS+2)標志送AH指令功能:將標志寄存器的低8位送入AH寄存即(FLAGS)7-0→AH。該指令的執(zhí)行對標志AH送標志指令功能:將AH的內容送入標志寄存器的低8位,高8位不變。即(AH)→FLAGS7-標志寄存器進棧指令功能:將標志寄存器的內容壓入(FLAGS)標志寄存器出棧指令功能:將棧頂內容彈出送入標志寄存器中。 POPAXORAX0100HPUSHAX1234(1)不帶進位加法指令語句格式:ADDOPD,語句格式:ADC功能:將目的操作數(shù)加源操作數(shù)再加低即(OPD)+(OPS)+CFOPDAX,4652HDX,0234H;(DX)=0234HDX,0F0F0H;(DX)=0F325H(3)加1 功能:將目的操作數(shù)加1,結果送目的INC指令是一個單操作數(shù)指令,操作數(shù)如:INCBX,即(BX)+1→BX(1)語句格式:SUB(2)帶借位減指令語句格式 OPD功能:目的操作數(shù)減源操作數(shù)再減即 →語句格式:DEC如:DECCX。即(CX)-1→CX減1指令DEC也一般用于對計數(shù)器和地址語句格式:NEG功能:將目的操作數(shù)的每一位求反(包括符號MOVNEG SUB NEG DEC NEG (5)語句格式 功能:目的操作數(shù)減源操作數(shù),結果只影響標志位,不送即(OPD)-(OPS)【例4.16】比較ALCMP JBBELOW;(AL)<50,轉到BELOWSUB ;(AL)>=50,(INC (1)無符號數(shù)乘法指令(2)有符號乘指令無符號數(shù)乘法指令MUL功能:若是字節(jié)數(shù)據(jù)相乘,(AL)與OPS相乘得到字數(shù)據(jù)存入AX中;若是字數(shù)據(jù)相乘,則(AX)即字節(jié)乘法:(AL)*(OPS)AX,(AX)*(OPS)BL,有符號乘指令語句格式:IMUL功能:字節(jié)乘法:(AL)*(OPS)→AX,字其他都與MULMOVAL,0B4HMOVBL,11H (1)無符號除指令(2)有符號除指令(3)語句格式:DIV 字節(jié)除法(AX)/(OPS)→AL(商)、AH(余 字除法(DX、AX)/(OPS)→AX(商)、DX(余【例4.18】寫出實現(xiàn)無符號數(shù)0400H/0B4H運算的MOVAX,0400HMOVBL,0B4H (2)有符號除指令語句格式 字節(jié)除法:(AX)/(OPS) AL(商)、AH(余數(shù)字除法:(DX,AX)/(OPS)→ (商)、DX(余數(shù)除法指令DIV和IDIV雖然對標志的影響未定義,但可產生溢【例4.19】寫出實現(xiàn)有符號數(shù)0400H/0B4HMOV MOV 功能:將AX中的符號位數(shù)據(jù)擴展至DXMOVDX, MOVAX, CWD;(DX)=0FFFFH(3)加法的非壓縮BCD碼調整指令加法的十進制調整指令AL寄存器中低4位大于9或輔助進位(AF)=1,則(AL)=(AL)+6且(AF)=1【例2.31】壓縮BCD;(AL)=68H,表示壓縮BCD碼;(BL)=28H,表示壓縮BCD碼;二進制加法;十進制調整;實現(xiàn)壓縮BCD碼加法減法的十進制調整指令功能:如果(AF)=1或AL寄存器中低4位大于9,則(AL)=(AL)-6且(AF)=1;如果(AL)>=0A0H(CF)=1,則(AL)=(AL)-60H且(CF)=1。同時MOV MOV SUBAL,BL ;二進制減法:(AL)=68H- 功能:如果AL的低4位大于9或(AF) (1)求反指令(2)邏輯乘指令(3)測試指令(4)邏輯加指令(5)按位加指令 功能:將目的地址中的內容逐位取反后 語句格式:ANDOPD功能:將目的操作數(shù)和源操作數(shù)進行邏輯乘運應位。說明:邏輯乘的運算法則為:1∧1=1MOVAND語句格式:TEST功能:源地址和目的地址的內容執(zhí)行按位 語句格式:OR功能:將目的操作數(shù)和源操作數(shù)進行邏輯加運說明:邏輯加的運算法則為:MOVORXOR功能:目的操作數(shù)與源操作數(shù)做按位加運算,結即(OPD)⊕(OPS→OPD說明:按位加的運算法則為;2 移位指令包括算術移位指令、邏輯移位指令和循環(huán)移位指令,分別進行左移和右移操作。這些指令均[標號:]操作符OPD,1 其功能為將目的操作數(shù)的所有位按操作符規(guī)定的方式移動1位或按寄存器CL規(guī)定的次數(shù)(0~255)移語句格式:SALOPD,1SHLSALOPD,CL或SHL低位補入相應的0,CF的內容為最后移入語句格式:SAROPD,1或SAR BH,0F4H CL,2 BH,CL;(BH)=0FDH該例語句SARBHCL實際上完成了(BH)/4→BH的運算,所以,用SAR指令可以實現(xiàn)對有符號數(shù)除2n的運算(n為語句格式:SHROPD,1或SHR功能:將(OPD)向右移動CL規(guī)定的次數(shù),最高位補入相應個數(shù)的0,CF的內容為最3語句格式:ROLOPD,1或ROL功能:將目的操作數(shù)的最高位與最低位連成一個環(huán),將環(huán)中的所有位一起向左移動CL規(guī)ROROPD,1或ROR功能:將目的操作數(shù)的最高位與最低位連成一個環(huán),將環(huán)中的所有位一起向右移動CL規(guī)RCLOPD1或RCL語句格式:RCROPD,1或RCR 圖4.3圖2.3MOVSW——功能:將以SI為指針的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)傳送至以DI為指針的目的地址中去,并自動修改指針,使之CMPSB——CMPSW——功能:將SI所指的源串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)與DI所指的目的串中的一個字節(jié)(或當DF=0(SI)(DI)增量。當DF=1SCASB——SCASW——功能:AL(字節(jié))或AX(字)中的內容與DI目的串中的一個字節(jié)(或字)存儲單元中的數(shù)據(jù)相即:①字節(jié)操作:(AL)-([DI]),字操作:LODSB——LODSW——功能:將SI所指的源串中的一個字節(jié)(或字)存即:①字節(jié)操作:(SI])AL,字操作:SI,STOSB——STOSW——功能:將AL或AX中的數(shù)據(jù)送入DI所指的目的串中 即:①字節(jié)操作:(AL)DI],字操作: ②修改指針DI,使之指向串中的下一個元當DF=0時,(DI)增量)。當DF=1時,(DI)減6.重復前綴指令REPREPZREP前綴用在MOVS、STOSLODS功能:每執(zhí)行一次串指令(CX)-1,直到(CX)功能:每執(zhí)行一次串指令(CX)-1,并判斷ZF志是否為0,只要(CX)=0或ZF=0,則重復執(zhí)行結該指令一般用在CMPS、SCAS功能:每執(zhí)行一次串指令(CX)-1,并判斷ZF志是否為0,只要(CX)=0或ZF=1,則重復執(zhí)行結1234表2.4(3)(1)(2) 【例4.27】比較無符號數(shù)大小,將較 AX, AX>=BX移到 ;若AX<BX, AX>=BX;若AX<BX,(1)循環(huán)指令(2)相等為零循環(huán)指令(3)不相等/不為零循環(huán)指令LOOP功能:(CX)-1≠0,則程序轉移說明:使用LOOP指令可代替兩條指DECJNE(2)相等/為零循環(huán)指令語句格式:① 短標② 功能:(CX)-1≠0且ZF=1,則(3)不相等/不為零循環(huán)指令功能:(CX)-1≠0,則程序轉(4)CX為零轉移指令語句格式: 短標(CX)1≠0(循環(huán)); 4.4 8086 BIOS DOS1.中斷就是計算機暫時停止當前正在執(zhí)行的程I。IFIF=,I則不8086的中斷系統(tǒng)能夠處理256個不同的中斷源,并為每一個中斷安排一個編號,范圍為00H~FFH,8086CPU把存儲器的00000H—003FFH共1024在段的段地址。CPU在中斷源數(shù)量很多的情況下,為保證系統(tǒng)的運行效率,方便軟件控制,一般將所有的中斷源根據(jù)不同的類別劃分為若干級別,稱為中斷優(yōu)先級。確定各中斷級之間的優(yōu)先順序,然后在同級內確定除法出錯中斷,溢出中斷,INT中斷的處理過程分為4步:中斷請求、中斷響(2)CPU則根據(jù)中斷優(yōu)先級的高低順序確定對某個中斷請求是否響應。對于非屏蔽中斷,只要有中斷請求,CPU就響應。對于可屏蔽中斷請求,CPU還要看標志寄存器的IF位的狀態(tài)是否為1,若為1,則響應該中斷請還應。當CPU對某一中斷請求予以響應后,將完成1)取中斷類型號2)標志寄存器F3)當前代碼段寄存器CS6)從中斷向量表中取中斷服務程序入口地址:(4×N)送(4×N+2)送7)中斷處理是由中斷服務程序來完成的。中斷服務程序根據(jù)不同的中斷請求,其內容各不相同。但其開始部分往往都是保護現(xiàn)場,即把CPU中寄存器的內容壓入堆棧,中斷服務程序的最后要使用中斷返回指令IRET,該指令的功能是恢復IP、CS和FIBMPC系列機在只讀存儲器中提供了BIOS基區(qū),又稱為ROMBIOS。它為用戶程序和系統(tǒng)程序提供主要外設的控制功能,即系統(tǒng)加電自檢、引導裝入及對鍵盤、磁盤、磁帶、顯示器、打印機、異步串行通信口等控制。計算機系統(tǒng)軟件就是利用這些基本的設備驅動程序,完成各種功能操作。每個功能模塊的入口地址都在中斷矢量表中,通過軟中斷指令INTn可以直接調用。n=8~1FH是中斷類型要完成系統(tǒng)功能調用,基本按如下步 此調用的功能是系統(tǒng)掃描鍵盤并等待鍵盤輸入一個字符,有鍵按下時,先檢查是否是Ctrl+Break鍵,若是則將字符的鍵值(ASCII碼)送 例如:要在屏幕上顯示“$”符號,可用以下指 3號系統(tǒng)功能調用的功能是將從異步串行通信口(COM1)輸入一個字符(或者(4)4號系統(tǒng)功能調用-異步通信輸出(從串口此調用的功能是系統(tǒng)將從異步通信口(默認為例如:現(xiàn)要將“$”MOVMOV (5)5號系統(tǒng)功能調用-打印機輸出(從此調用的功能是將一個字符輸出到打印機入口參數(shù):欲打印的字符的ASCII碼送入(6)6號系統(tǒng)功能調用-直接控制臺輸入輸出字此調用的功能是從鍵盤輸入一個字符,或輸出一當標志ZF=0時,表示有鍵被按下,將字符的當標志ZF=1時,表示沒有鍵按下,寄存器AL如果(DL)0FFH,表示輸出一個字符到屏幕,將被輸出字符ASCII碼送到DL中。此調用與15.15.25.15.25.45.55.6匯編語言是一種面向CPU指令系統(tǒng)的程序設計語言,它采用指令系統(tǒng)的助記符來表示操作碼和操作數(shù),用符號地址表示操作數(shù)地址,因而易記、易讀、易修改,給編程帶來很大用匯編語言編寫的程序能夠直接利用硬件系統(tǒng)的特性,直接對位、字節(jié)、字寄存器、存儲單元、I/O端口等進行處理,同時也能直接使用CPU指令系統(tǒng)和指令系統(tǒng)提供的各種尋址方式編制出高質量的程序,這種程序不但占用內存空間ASM(Assembler)(MacroAssembler)匯編程序以匯編語言源程序文件作為輸入,并由它產生通常,一個匯編源程序一般應該由3個邏輯段組成,即數(shù)據(jù)段、堆棧段和代碼段。每個邏輯段以SEGMENT語句開8086宏匯編MASM使用的語句可以分成3 的一種較“宏大”[名字 操作 [操作數(shù) [;注釋名字是一個符號,它表示本條語句的符號地址。一般注意:標號和變量都具備3種屬性——操作數(shù)字段是操作符的操作對象。操作符在完成相應的操作時要求有一系列的操作數(shù)。當有兩個或兩個以上的注釋字段是以“;”開頭的說明部分,可以用英文或者匯編語言每條語句的第一個字段是它的名字字段,名重點是要掌握其組成規(guī)則和它的3下面分別討論5SHORT、THIS、HIGH和LOW。各類運算符和常數(shù)、寄存器名、標號、變在計算具有多個運算符的表達式值時,按 數(shù)據(jù)定義偽指令用來定義一個變量的類型,并將所需要的數(shù)據(jù)放入指定的存儲單元中,也可以只給變量分…義新的類型屬性等。這些符號可以包括匯編語言的變量段定義偽指令的用途是在匯編語言程序中定義邏輯常用的段定義偽指令有SEGMENT、ENDS和ASSUME子程序。子程序又稱為過程,可以采用CALL指令來調過程 (語句系列 CALL用偽指令STRUC和ENDS把相關數(shù)據(jù)定義語句組合起結構 (數(shù)據(jù)定義語句序列結構 在編寫規(guī)模較大的匯編語言源程序時,可以將整將各模塊分別進行匯編,生成各自的目標程序,為了進行模塊之間連接和實現(xiàn)相互的符號訪問,程序計數(shù)器字符“$”在8086宏匯編中具有一種特殊的意義,把在程序中,“$”出現(xiàn)在表達式里,它的值為程序下利用ORG目前8086匯編語言程序一般多在IBMPC/XT及其主要是指支持匯編語言程序運行和幫助建立匯編DOS編輯程序宏匯編程序連接程序調試程序用匯編程序MASM.EXE用機器碼表示的目標程序文件,其擴展名為本節(jié)中給出的程序是從鍵盤輸入10個字符,然后以與鍵入相反的順序將10個字符輸出到顯示匯編完畢程序正確,則可調用LINK進行連接, 本章詳細講述匯編語言程序設計的基本步驟,通過實例分析說明程序的基本結構,按照程序設計的基本步驟設計各種結構程序的方6.1匯編語言程序設計基本方法和基本6.26.36.46.5 步步 6.7. 所謂結構化程序設計是指程序的設計、編寫和測試都采用一種規(guī)定的組織形式進行,而不是想怎么寫就怎么寫。這樣,可使編制的程序結構清晰,易于讀懂,易于調試和修改,充分顯示出模塊化程序設計的優(yōu) 提出并證明的結構定理:即任何程序都可以由3種基本結構程序構成結構化程序,這3種結構是:順序結構、分支(條件選擇)結構和循環(huán)結構。每一個結構只有一個入口和一 1 流程圖是由特定的幾何圖形、指向線、文字說明來表示數(shù)據(jù)處理的步驟,形象描述邏輯控制結構以及數(shù)據(jù)流程的示意圖。流程圖具有簡潔、明了、直觀的特【例6.1】試編寫一程序計算以下表達式設x、y、z、v的值存放在字變量圖 2 SEGMENT 200 ASSUME ;(V) ;(DX:AX)-(BX ;余數(shù) ENDS;退出DOS 【例6.2】已知某班學生的英語成績按學號(從1開始)從小到大的順序排列在TAB表中,要查的學生的學號放在變量 SEGMENT 200 83,56,32,66,78。ASSUME DS 6.3.16.3.2 8086/8088指令系統(tǒng)具有許多種條件轉移指令,這就說明8086/8088計算機系統(tǒng)具有很強的邏輯判斷能力,并且能夠根據(jù)這種邏輯判斷選擇執(zhí)行不同的程序段。也就是說,當條件滿足時進行某種處理,當條件不滿足 ASSUMETESTAL,80H;測試ALJZ ;為正,轉NEG MOVRESULT,ALMOVINT21H;返回 2 多分支結構是有若干個條件,每一個條件對應一個基本操作。分支程序就是判斷產生的條件,哪個條件成立,就執(zhí)行哪個條件對應操作的程序段。也就是說,從若干分支中選擇 多分支結構實現(xiàn)的方法有:條件選擇 0-1 設輸入數(shù)據(jù)為X、輸出數(shù)據(jù)Y,且皆為字節(jié)變量。程序流程圖如下圖所 XDB-YDB START:MOVMOV

MOV ;X;Al中內容和0;大于等于0,轉;否則為負數(shù),;Al中內容是否為0,;否則為大于;轉到結束;;;;【例6.5】試編一程序,求三個帶符號字數(shù)據(jù)中的最大值,并將最大值存入 SEGMENTDB200 DW DW DW DW ASSUME ASSUME MOV轉 把轉移到各分支程序段的轉移指令依次放在一張表中,這張表稱為轉移表。把離表首單元的偏移量作為條件來判斷各分支轉移指令在表中的位置。當進行多分支條件判斷時,把當前的條件—偏移量加上表首地址作為轉移地址,轉移到表中的相應位置,繼續(xù)執(zhí)行無條件轉移指令,達到多分支的目【例6.6】設某程序有8路分支,試根據(jù) DW DB DB200 ASSUMEDS:DATA,SS:STACK,START:MOVMOVMOV ADDMOVMOV 上述程序中的無條件轉移指令的轉移地址采用的是變址尋址。同理,轉移地址也可以用寄存器間接尋址或基址加變址尋址,讀者可自行考6.4.16.4.2【例6.7】已知有幾個元素存放在以BUF為首址的字節(jié)存貯區(qū)中,試統(tǒng)計其中正 顯然,每個元素為一個8位有符號二進制數(shù),統(tǒng)計其中正元素的個數(shù)可用循環(huán)程序實現(xiàn)。其程序流程圖如下圖所6.8】編寫程序完成求12為止。統(tǒng)計被累加的自然數(shù)的個數(shù)送CN單元,累加和送SUM。流程圖如下圖所 SUMDW DW ASSUME MOVMOV MOV MOVADD CMP JBE MOVMOV MOVINT END 次對相鄰兩個數(shù)進行比較,如次序對,則不交換兩數(shù)位置;如次序不對則使這兩個數(shù)交換位置。的數(shù)已經放到了最后;第二遍比較只需考慮剩下的(N-1)個數(shù),即只需比較(N-2)次;第三遍只需比較(N-3)次,……整個排序過程最多需(N-1)遍。如下面的4個數(shù)即是采用冒泡排序比 3,-4,6,7,9,2,0,-8,-9,- STACKSEGNMENTDB200STACK CS:CODE,DS:DATA,SS L:ADDDEC MOV MOV END 程序運行后,BUF區(qū)中的內容如 20,9,7,6,3,2,0,-4,-8,- 序排列,只需將指令“JGEL”改為“JAE6.4.16.4.26.4.3子程序的定義和參數(shù)傳6.4.4 多次無規(guī)律重復的程序段或語句序列。解決此類問題一個行之有效的方法就是將它們設計成可供反復調用的獨立的子程序結構,以便在需要時調用。在匯編 1子程序的定義是由過程定義偽指令PROC和其中PROC表示過程定義開始,ENDP表示過程定義結束。過程名是過程入口地址的符號表【例6.10】將一個給定的二進制數(shù)按位轉換元并顯示。如二進制數(shù)10010011轉換成字符串為‘10010011’。要求將轉換過程寫成子程序,且子程序應具有較好的通用性,而必須入口參數(shù):DXCX存放待轉換數(shù)的位數(shù)(8位或16位出口參數(shù):轉換后的字符串存放在以DI作指針的字節(jié)存 DS:DATA,CS:CODE,SS BTASC;調用子程序 [DI],BYTEPTR [DI+1],BYTEPTR [DI+2],BYTEPTR [DL],BYTEPTR [DL+1],BYTEPTR [DL+2],BYTEPTR BTASC DX,,1;DX最高位移入 END 7.17.1.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論