




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
來源網(wǎng)絡侵權請聯(lián)系刪除第1章習題解答:1.1微型計算機經(jīng)過了哪些主要發(fā)展階段?微處理器的發(fā)展經(jīng)歷了如下幾個階段:(1)1971~1973年為4位或8位低文件微處理器和微型計算機時代。(2)1974~1977年為8位中文件微處理器和微型計算機時代。(3)1978~1984年為16位微處理器和微型計算機時代。(4)1985~1992年為32位微處理器和微型計算機時代1.2如何確定一個微處理器是8位的、16位的、32位的?根據(jù)微處理器的字長來決定(數(shù)據(jù)總線數(shù))1.4什么是微處理器,什么是微型計算機,什么是微型計算機系統(tǒng)?微處理器(CPU):包含有運算器、控制器和若干寄存器的大規(guī)模集成電路。微型計算機:微處理器+存儲器+I/O接口。微機系統(tǒng):微機+軟件+外圍設備。1.5什么是位、字節(jié)、字和字長?1.位(Bit)位是計算機所能表示的最小數(shù)據(jù)單位,它只能有兩種狀態(tài)“0”和“1”,因此“位”就是一個二進制位。2.字節(jié)(Byte)每8位二進制數(shù)稱為一個字節(jié)。字節(jié)的長度是固定的:1Byte=8Bit。可以說字節(jié)是一種二進制數(shù)長度的計量單位。3.字(Word)字是計算機進行數(shù)據(jù)處理的基本單位,即計算機(CPU通過數(shù)據(jù)總線)一次能夠存取、加工或傳送的數(shù)據(jù)。4.字長(WordLength)字長就是字的二進制位數(shù)。字長是衡量計算機性能的一個重要指標。1.6通用微型計算機硬件系統(tǒng)結(jié)構(gòu)是怎樣的?請用示意圖表示并說明各部分作用。微型計算機的硬件主要由以下五個部分組成:①微處理器CPU②內(nèi)存儲器(RAM、ROM)③外存儲器(磁盤、磁帶、光盤)④輸入、輸出設備⑤總線(BUS)。地址總線(AB)存儲器存儲器ROM存儲器RAMI/O設備I/O接口協(xié)處理器80X86CPU中央處理器硬盤軟驅(qū)顯示器RS232……數(shù)據(jù)總線(DB)控制總線(CB)80X8780X871.7通用微型計算機軟件包括哪些內(nèi)容?軟件系統(tǒng)可分為系統(tǒng)軟件和應用軟件兩大類。系統(tǒng)軟件包括面向計算機管理的軟件,如操作系統(tǒng)等;各種語言和它們的匯編或解釋、編譯程序;程序庫。用戶利用計算機以及各種系統(tǒng)軟件,在各自領域中為解決各種實際問題而開發(fā)使用的軟件統(tǒng)稱為應用軟件1.8什么是指令,什么是程序?指令是指能夠控制機器工作的命令
程序是指能夠完成某些工作的的指令集1.9什么是數(shù)據(jù)?什么是信息?數(shù)據(jù)是指某一目標定性、定量描述的原始資料,包括數(shù)字、文字、符號、圖形、圖像以及它們能夠轉(zhuǎn)換成的數(shù)據(jù)等形式。信息是向人們或機器提供關于現(xiàn)實世界新的事實的知識,是數(shù)據(jù)、消息中所包含的意義。1.11寫出下列二進制數(shù)的原碼、反碼和補碼(設字長為8位)。(1)+011001(2)-100100(3)-111111解:(1):(+011001)原碼=(+011001)反嗎=(+011001)補碼=00011001(2):(-100100)原碼=10100100、(-100100)反嗎=11011011、(-100100)補碼=11011100(3):(-111111)原碼=10111111)、(-111111)反嗎=11000000、(-111111)補碼=110000011.12當下列二進制數(shù)分別代表原碼、反碼和補碼時,其等效的十進制數(shù)值為多少?(1)00110101(2)10010011(3)11111111解:(1)都是53(2)原碼時是-19、反嗎時是-108、補碼是-109(3)原碼時是-127、反嗎時是-0、補碼是-11.13已知X1=+0011011Y1=+0100100X2=-0010110Y2=-0100101試計算下列各式(設字長8位)(1)[X1+Y1]補(2)[X1-Y1]補(3)[X2-Y2]補解:(1)[X1]原=[X1]反=[X1]補=00011011[Y1]原=[Y1]反=[Y1]補=00100100[X1+Y1]補=[X1]補+[Y1]補=00011011+00100100=00111111(2)[X1]原=[X1]反=[X1]補=00011011[-Y1]原=10100100、[-Y1]反=11011011、[-Y1]補=11011100、[X1-Y1]補=[X1]補+[-Y1]補=11110111(3)[X2]原=10010110、[X2]反=11101001、[X2]補=11101010[-Y2]原=[-Y2]反=[-Y2]補=00100101[X2-Y2]補=[X2]補+[-Y2]=000011111.14用補碼完成下列運算(設字長為8位)(1)70+65(2)70-65(3)-70-65解:[70]補=01000110[-70]補=10111010[65]補=01000001[-65]補=10111111[70+65]補=[70]補+[65]補=10000111溢出;[70-65]補=[70]補+[-65]補==00000101[-70-65]補=[-70]補+[-65]補=01111001溢出;1.15將下列各數(shù)轉(zhuǎn)換成BCD碼(1)(20)10(2)0100110B(2)26H解:(1)00100000BCD(2)00111000BCD(3)00111000BCD
第2章習題解答2.1.8086向奇地址存儲單元送一個字節(jié)數(shù)據(jù)時,須執(zhí)行一個總線周期,M/為(),在第一個T狀態(tài)中,ALE為(___),A0為(___);在第三個T狀態(tài),為(),為()。答:M/為1,ALE,1,A0,1為0為1。2.2.8086向偶地址存儲單元0送一個字節(jié)數(shù)據(jù)時,須執(zhí)行一個總線周期,在第一個T狀態(tài)中,ALE為(___),A0為(___),為()。答:ALE為1,A0為0,為0。2.3.根據(jù)8086CPU數(shù)據(jù)總線的寬度,其可表示的無符號數(shù)的范圍是(___)。答:0到65535。2.4.微型計算機主要由那幾部分組成?各部分的功能如何?答:微型計算機主要由控制器、運算器、儲存設備、輸入設備、輸出設備五個部分??刂破鞯幕竟δ苁强刂茩C器各部件協(xié)調(diào)一致地工作;微型計算機中運算器的主要功能是算術和邏輯運算;微型計算機中儲存設備的主要功能是存放程序和數(shù)據(jù);微型計算機中輸入設備的功能是用戶向計算機輸入信息;計算機輸出設備的功能是將計算機內(nèi)部二進制形式的信息轉(zhuǎn)換為人們所需要或其他設備所能接受和識別的信息形式。2.5.說明總線接口部件的作用。答:總線接口部件的作用是負責與存儲器和I/O端口傳送數(shù)據(jù),總線接口部件主要包括.4個段地址寄存器;一個指令指針寄存器IP;一個20位地址加法器;6字節(jié)指令隊列;內(nèi)部通信寄存器和總線控制邏輯。2.6.8086CPU讀/寫總線周期各包含多少個時鐘周期?什么情況下需要插入Tw周期?應插入多少個Tw取決于什么因素?答:8086的基本總線周期為4個時鐘周期,每個時鐘周期間隔稱為一個T狀態(tài)。T1狀態(tài):BIU將RAM或I/O地址放在地址/數(shù)據(jù)復用總線(A/D)上。T2狀態(tài):讀總線周期:A/D總線為接收數(shù)據(jù)做準備。改變線路的方向。寫總線周期:A/D總線上形成待寫的數(shù)據(jù),且保持到總線周期的結(jié)束(T4)。T3,T4:對于讀或?qū)懣偩€周期,AD總線上均為數(shù)據(jù)。在T3,T4期間,當外設或存儲器速度不能及時配合CPU傳送數(shù)據(jù),外設或存儲器通過READY信號在T3狀態(tài)啟動前向CPU發(fā)一個“數(shù)據(jù)未準備好”信號時需要插入Tw周期。應插入多少個Tw取決于READY引腳何時變?yōu)楦唠娖剑坏〤PU檢測到READY引腳變?yōu)楦唠娖?,便脫離Tw而進入T4。2.7.8086CPU復位后,各寄存器的狀態(tài)如何?復位后,執(zhí)行的第一條指令的地址是多少?答:8086CPU復位后,內(nèi)部的段寄存器,標志寄存器,指令指針ip及指令隊列都將被清零,只有段寄存器CS被設置為FFFFH。一旦復位完成,CPU將從CS:IP值為FFFFH:0000H,即物理地址為0FFFF0H的地址開始執(zhí)行程序。2.8.簡述8086最小模式系統(tǒng)與最大模式系統(tǒng)之間的主要區(qū)別。答:就是在系統(tǒng)中只有8086一個CPU,而所有的總線控制信號都由8086直接產(chǎn)生,因此系統(tǒng)中的總線控制電路被減到最少。而最大模式是相對最小模式而言的,此時系統(tǒng)中有兩個或多個微處理器,其中有一個是主處理器8086,其它的處理器稱為協(xié)處理器,它們協(xié)助主處理器工作。2.9.8086CPU由哪兩部分組成?它們的主要功能各是什么?它們之間是如何協(xié)調(diào)工作的?答:8086CPU從功能上劃分成兩部分:總線接口單元BIU(BusInterfaceUnit)和執(zhí)行單元EU(ExecutionUnit)??偩€接口單元BIU負責從內(nèi)存中取指令到指令預取隊列,負責與內(nèi)存或輸入/輸出接口之間的數(shù)據(jù)傳送,在執(zhí)行轉(zhuǎn)移程序時,BIU使指令預取隊列復位,從指定的新地址取指令,并立即傳給執(zhí)行單元執(zhí)行。執(zhí)行單元EU負責全部指令的執(zhí)行,同時向BIU輸出數(shù)據(jù)(操作結(jié)果),并對寄存器和標志寄存器進行管理。在ALU中進行16位運算,數(shù)據(jù)傳送和處理均在EU控制下執(zhí)行。2.10.8086CPU中有哪些寄存器?各有什么用途?標志寄存器PSW有哪些標志位?各在什么情況下置位?答:8086CPU中8個通用寄存器:即AX、BX、CX、DX,BP,SP,SI,DI;其中,AX、BX、CX、DX是4個數(shù)據(jù)寄存器:2個地址指針寄存器:BP(BasePointer),SP(StackPointer);2個變址寄存器:SI(SourceIndex),DI(DestinationIndex);標志寄存器FR(FlagsRegister)和指令指針(InstructionPointer)寄存器。AX(AH、AL),常用于乘、除法和函數(shù)返回值;BX(BH、BL)常做內(nèi)存數(shù)據(jù)的指針,或者說常以它為基址來訪問內(nèi)存;CX(CH、CL) 常做字符串和循環(huán)操作中的計數(shù)器;DX(DH、DL)常用于乘、除法和I/O指針;SI常做內(nèi)存數(shù)據(jù)指針和源字符串指針;DI 常做內(nèi)存數(shù)據(jù)指針和目的字符串指針;SP 只做堆棧的棧頂指針;不能用于算術運算與數(shù)據(jù)傳送;BP只做堆棧指針,可以訪問堆棧內(nèi)任意地址,經(jīng)常用于中轉(zhuǎn)ESP中的數(shù)據(jù),也常以它為基址來訪問堆棧;不能用于算術運算與數(shù)據(jù)傳送。標志(Flag)寄存器:16位FLAGS中的第0、2、4、7、8、12位是狀態(tài)標志位;,9、10、11位是控制標志位;其他7位未用。指令指針(InstructionPointer)寄存器總是指向下一條指令的地址,所有已執(zhí)行的指令都被它指向過。1、進位標志CF(CarryFlag)進位標志CF主要用來反映運算是否產(chǎn)生進位或借位。如果運算結(jié)果的最高位產(chǎn)生了一個進位或借位,那么,其值為1,否則其值為0。使用該標志位的情況有:多字(字節(jié))數(shù)的加減運算,無符號數(shù)的大小比較運算,移位操作,字(字節(jié))之間移位,專門改變CF值的指令等。2、奇偶標志PF(ParityFlag)奇偶標志PF用于反映運算結(jié)果中”1″的個數(shù)的奇偶性。如果”1″的個數(shù)為偶數(shù),則PF的值為1,否則其值為0。利用PF可進行奇偶校驗檢查,或產(chǎn)生奇偶校驗位。在數(shù)據(jù)傳送過程中,為了提供傳送的可靠性,如果采用奇偶校驗的方法,就可使用該標志位。3、輔助進位標志AF(AuxiliaryCarryFlag)在發(fā)生下列情況時,輔助進位標志AF的值被置為1,否則其值為0:(1)、在字操作時,發(fā)生低字節(jié)向高字節(jié)進位或借位時;(2)、在字節(jié)操作時,發(fā)生低4位向高4位進位或借位時。對以上6個運算結(jié)果標志位,在一般編程情況下,標志位CF、ZF、SF和OF的使用頻率較高,而標志位PF和AF的使用頻率較低。4、零標志ZF(ZeroFlag)零標志ZF用來反映運算結(jié)果是否為0。如果運算結(jié)果為0,則其值為1,否則其值為0。在判斷運算結(jié)果是否為0時,可使用此標志位。5、符號標志SF(SignFlag)符號標志SF用來反映運算結(jié)果的符號位,它與運算結(jié)果的最高位相同。在微機系統(tǒng)中,有符號數(shù)采用補碼表示法,所以,SF也就反映運算結(jié)果的正負號。運算結(jié)果為正數(shù)時,SF的值為0,否則其值為1。6、溢出標志OF(OverflowFlag)溢出標志OF用于反映有符號數(shù)加減運算所得結(jié)果是否溢出。如果運算結(jié)果超過當前運算位數(shù)所能表示的范圍,則稱為溢出,OF的值被置為1,否則,OF的值被清為0?!睜顟B(tài)控制標志位是用來控制CPU操作的,它們要通過專門的指令才能使之發(fā)生改變。1、追蹤標志TF(TrapFlag)當追蹤標志TF被置為1時,CPU進入單步執(zhí)行方式,即每執(zhí)行一條指令,產(chǎn)生一個單步中斷請求。這種方式主要用于程序的調(diào)試。指令系統(tǒng)中沒有專門的指令來改變標志位TF的值,但程序員可用其它辦法來改變其值。2、中斷允許標志IF(Interrupt-enableFlag)中斷允許標志IF是用來決定CPU是否響應CPU外部的可屏蔽中斷發(fā)出的中斷請求。但不管該標志為何值,CPU都必須響應CPU外部的不可屏蔽中斷所發(fā)出的中斷請求,以及CPU內(nèi)部產(chǎn)生的中斷請求。具體規(guī)定如下:(1)、當IF=1時,CPU可以響應CPU外部的可屏蔽中斷發(fā)出的中斷請求;(2)、當IF=0時,CPU不響應CPU外部的可屏蔽中斷發(fā)出的中斷請求。CPU的指令系統(tǒng)中也有專門的指令來改變標志位IF的值。3、方向標志DF(DirectionFlag)方向標志DF用來決定在串操作指令執(zhí)行時有關指針寄存器發(fā)生調(diào)整的方向。2.11.8086系統(tǒng)中儲存器的邏輯地址和物理地址之間有什么關系?表示的范圍各為多少?答:邏輯地址的表達形式為:段地址:偏移地址,.物理地址是地址總線上提供的20位地址,兩者之間的關系:物理地址=段地址×10H+段內(nèi)偏移量。邏輯地址的范圍:邏輯地址是16位的,因此范圍是2的16次方,即64K;物理地址的范圍00000H~FFFFFH變化,對應1MB的空間。2.12.已知當前數(shù)據(jù)段位于儲存器的A1000H到B0FFFH范圍內(nèi),問DS=?答:由物理地址的計算表達式:DS*16+IP1=A1000HDS*16+IP2=B0FFFHIP2-IP1=0FFFFH,所以IP1=0000H,IP2=0FFFFH,則DS=A100H。2.13.某程序數(shù)據(jù)段中存有兩個數(shù)據(jù)字1234H和5A6BH,若已知DS=5AA0H,它們的偏移地址分別為245AH和3245H,試畫出它們在儲存器中的存放情況。答:邏輯地址:5AA0:245A對應物理地址:5CE5AH單元存放34H;邏輯地址:5AA0:245B對應物理地址:5CE5BH單元存放12H;邏輯地址:5AA0:3245H對應物理地址:5DC45H單元存放6BH;邏輯地址:5AA0:3246H對應物理地址:5DC46H單元存放5AH。2.14.8086系統(tǒng)中為什么一定要有地址鎖存器?需要鎖存哪些信息?答:8086/8088數(shù)據(jù)和地址總線采用分時復用操作方法,即用同一總線既傳輸數(shù)據(jù)又傳輸?shù)刂?。當微處理器與存儲器交換信號時,首先由CPU發(fā)出存儲器地址,同時發(fā)出允許鎖存信號ale給鎖存器,當鎖存器接到該信號后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸數(shù)據(jù)。在T1結(jié)束時將地址信息鎖存在地址鎖存器中。2.15.若8086CPU工作于最小模式,試指出當CPU完成將AH的內(nèi)容送到物理地址為91001H的存儲單元操作時,以下哪些信號應為低電平:M/、、、/S7、DT/。若CPU完成的是將物理地址91000H單元的內(nèi)容送到AL中,則上述哪些信號應為低電平。答:8086CPU①存儲器寫(AH→[91001H])時為低電平的信號:WR、/S7。②存儲器讀([91000H]→AL)時為低電平的信號:、DT/。2.16.什么是引腳的分時復用?請說出8086CPU有哪些引腳是分時復用引腳?其要解決的問題是什么?答:一條引腳上分時傳送兩種信號。8086:AD15~AD0,分時用作地址和數(shù)據(jù)總線;A19~A16/S6~S3,分時用作地址和狀態(tài)總線。2.17.試說明8086/8088工作在最大和最小模式下系統(tǒng)基本配置的差異。答:最小模式--即系統(tǒng)中只有8086(或8088)一個微處理器。最小模式是單處理器系統(tǒng)。系統(tǒng)中所需要的控制信號全部由8086(或8088)CPU本身直接提供。最大模式--系統(tǒng)中有兩個或兩個以上的微處理器,即除了主處理器8086(或8088)以外,還有協(xié)處理器(8087算術協(xié)處理器或8089輸入/輸出協(xié)處理器)。最大模式可構(gòu)成多處理器系統(tǒng),系統(tǒng)中所需要的控制信號由總線控制器8288提供。最大模式是相對最小模式而言的。最大模式用在中等規(guī)模的或者大型的8086/8088系統(tǒng)中。在最大模式系統(tǒng)中,總是包含有兩個或多個微處理器,其中一個主處理器就是8086或者8088,其他的處理器稱為協(xié)處理器,它們是協(xié)助主處理器工作的。2.18.什么是指令周期?什么是總線周期?什么是時鐘周期?它們之間的關系如何?答:指令周期指執(zhí)行一條指令的時間。總線周期所謂一個T狀態(tài)就是一個時鐘周期.它是CPU執(zhí)行操作的最小時間單位.通常包含4個T狀態(tài):T1,T2,T3,T4。指令周期(InstructionCycle):取出并執(zhí)行一條指令的時間。總線周期(BUSCycle):也就是一個訪存儲器或I/O端口操作所用的時間。時鐘周期(ClockCycle):又稱節(jié)拍周期,是處理操作的最基本單位。(晶振頻率的倒數(shù),也稱T狀態(tài))指令周期、總線周期和時鐘周期之間的關系:一個指令周期由若干個總線周期組成,而一個總線周期時間又包含有若干個時鐘周期。2.19.試簡述8086系統(tǒng)最小模式時從儲存器讀數(shù)據(jù)時的時序過程。答:8086系統(tǒng)最小模式時從儲存器讀數(shù)據(jù)時的時序過程依次分為、、和四個狀態(tài),各狀態(tài)完成的內(nèi)容如下:其中狀態(tài):①有效,用來指出本次讀周期是存貯器讀還是I/O讀,它一直保持到有效。②地址線信號有效,高4位通過地址/狀態(tài)線送出,低16位通過地址/數(shù)據(jù)線送出,用來指出操作對象的地址,即存貯器單元地址或I/O端口地址。③ALE有效,在最小模式的系統(tǒng)配置中我們講過,地址信號通過地址鎖存器8282鎖存,ALE即為8282的鎖存信號,下降沿有效。④(對8088無用)有效,用來表示高8位數(shù)據(jù)總線上的信息有效,現(xiàn)在通過傳送的是有效地址信息,常作為奇地址存貯體的選通信號,因為奇地址存貯體中的信息總是通過高8位數(shù)據(jù)線來傳輸,而偶地址體的選通則用。⑤當系統(tǒng)中配有總線驅(qū)動器時,使變低,用來表示本周期為讀周期,并通知總線驅(qū)動器接收數(shù)據(jù)();狀態(tài):⑥高四位地址/狀態(tài)線送出狀態(tài)信息,。⑦低16位地址/數(shù)據(jù)線浮空,為下面?zhèn)魉蛿?shù)據(jù)準備。⑧引腳成為(無定義)。⑨有效,表示要對存貯器/I/O端口進行讀。⑩有效,使得總線收發(fā)器(驅(qū)動器)可以傳輸數(shù)據(jù)();狀態(tài):從存貯器/I/O端口讀出的數(shù)據(jù)送上數(shù)據(jù)總線(通過);狀態(tài):若存貯器或外設速度較慢,不能及時送上數(shù)據(jù)的話,則通過READY線通知CPU,CPU在的前沿(即結(jié)束末的下降沿)檢測READY,若發(fā)現(xiàn)READY=0,則在結(jié)束后自動插入1個或幾個,并在每個的前沿處檢測READY,等到READY變高后,則自動脫離進入;狀態(tài):在與(或)的交界處(下降沿),采集數(shù)據(jù),使各控制及狀態(tài)線進入無效。
第3章習題解答3.1什么叫零地址指令?一地址指令呢?二地址指令呢?3.2舉例說明與數(shù)據(jù)有關的7種尋址方式。3.3寄存器間接尋址方式中可以使用哪些寄存器作為間址寄存器?3.4立即尋址方式和寄存器尋址方式的操作數(shù)有物理地址嗎?3.5已知(BX)=1290H,(SI)=348AH,(DI)=2976H,(BP)=6756H,(DS)=2E92H,(ES)=4D82H,(SS)=2030H,請指出下列指令的尋址方式,并求出有效地址EA和物理地址:MOVAX,BXMOVAX,1290HMOVAX,[BX]
MOVAX,DS:[1290H]MOVAX,[BP]MOV[DI][BX],AXMOVES:[SI],AX參考答案:MOVAX,BX源操作數(shù)為寄存器尋址,EA無,物理地址無
MOVAX,1290H立即尋址,EA無,物理地址無
MOVAX,[BX]寄存器間接尋址,EA=1290H,物理地址=2FBB0H
MOVAX,DS:[1290H]直接尋址,EA=1290H,物理地址=2FBB0H
MOVAX,[BP]寄存器間接尋址,EA=6756H,物理地址=26A56H
MOV[DI][BX],AX目的操作數(shù)為基址變址尋址,EA=3C06H,物理地址=32526H
MOVES:[SI],AX寄存器間接尋址,EA=348AH,物理地址=50CAAH3.6請指出下列指令的錯誤:MOVAX,[CX]MOVAL,1200HMOVAL,BXMOV[SI][DI],AXMOVES:[DX],CXMOV[AX],VALUEMOVCOUNT,[SI]參考答案MOVAX,[CX]錯。CX不能為間址寄存器MOVAL,1200H錯。立即數(shù)超出8位寄存器范圍MOVAL,BX錯。兩個操作數(shù)不匹配MOV[SI][DI],AX錯。兩個變址寄存器不能在一起MOVES:[DX],CX錯。DX不能為間址寄存器MOV[AX],VALUE錯。AX不能為間址寄存器MOVCOUNT,[SI]錯。兩個操作數(shù)不能都是存儲單元3.7根據(jù)題目要求,寫出相應的匯編指令:(1)把BX寄存器的值傳送給AX(2)將立即數(shù)15送入CL寄存器
(3)用BX寄存器間接尋址方式將存儲單元中的字與AX寄存器的值相加,結(jié)果在AX中(4)把AL中的字節(jié)寫入用基址變址尋址的存儲單元中(5)用SI寄存器和位移量VALUE的寄存器相對尋址方式,從存儲單元中讀出一個字送入寄存器AX(6)將AX中的數(shù)與偏移地址為2000H存儲單元的數(shù)相減,結(jié)果在AX中參考答案(1)MOVAX,BX(2)MOVCL,15(3)ADDAX,[BX](4)MOV[BX+SI],AL(5)MOVAX,VALUE[SI](6)SUBAX,DS:[2000H]3.8將存儲單元X中的第3個字取出,AX與其相加再放入Y單元。寫出分別用下列尋址方式實現(xiàn)的指令序列。(1)直接尋址(2)寄存器相對尋址(3)基址變址參考答案(1)ADDAX,[X+4]
MOVY,AX
(2)MOVBX,4
ADDAX,X[BX]
MOVY,AX
(3)MOVBX,4
MOVSI,OFFSETX
ADDAX,[BX+SI]
MOVY,AX3.9根據(jù)下列要求,寫出相應的匯編指令(1)把BX寄存器和DX寄存器的內(nèi)容相加,結(jié)果存入DX寄存器中。(2)用寄存器BX和SI基地址變址尋址方式把存儲器中的一個字節(jié)與AL寄存器的內(nèi)容相加,并把結(jié)果送到AL寄存器中。(3)用寄存器BX和位移量0B2H的寄存器相對尋址方式把存儲器中的一個字和(CX)相加,并把結(jié)果送回存儲器中。(4)用位移量為0524H的直接尋址方式把存儲器中的一個字與數(shù)2A59H相加,并把結(jié)果送回該存儲單元中。(5)把數(shù)0B5H與(AL)相加,并把結(jié)果送回AL中。參考答案:(1)ADDDX,BX(2)ADDAL,[BX][SI](3)ADD[BX][0B2H],CX(4)MOVAX,2A59HADD[0524H],AX(5)ADDAL,0B5H
3.10寫出把首地址為BLOCK的字數(shù)組的第6個字送回到DX寄存器的指令。要求使用以下幾種尋址方式:(1)寄存器間接尋址(2)寄存器相對尋址(3)基址變址尋址參考答案:(1)寄存器間接尋址MOVBX,OFFSETBLOCKADDBX,0AHMOVDX,[BX](2)寄存器相對尋址MOVSI,OAHMOVDX,[BLOCK][SI](3)基址變址尋址MOVBX,BLOCKMOVSI,OAHMOVDX,[BX][SI]3.11給定(IP)=2BC0H,(CS)=0200H,位移量D=5119H,(BX)=1200H,(DS)=212AH,(224A0)=0600H,(275B9)=098AH,試為以下的轉(zhuǎn)移指令找出轉(zhuǎn)移的偏移地址。(1)段內(nèi)直接尋址(2)使用BX及寄存器間接尋址方式的段內(nèi)間接尋址(3)使用BX及寄存器相對尋址方式的段內(nèi)間接尋址參考答案:(1)7CD9H(2)0600H(3)098AH3.12在0624單元內(nèi)有一條二字節(jié)JMPSHORTOBJ指令,如其中位移量為(1)27H,(2)6BH,(3)0C6H,試問轉(zhuǎn)向地址OBJ的值是多少?參考答案:轉(zhuǎn)向地址OBJ的值分別為:(1)064BH(2)068FH(3)05EAH3.13執(zhí)行下列指令后,AX寄存器中的內(nèi)容是什么?TABLEDW10,20,30,40,50ENTRYDW3…MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,[BX]答案:執(zhí)行完指令后,(AX)=1E00H3.14已知程序段如下:MOVAX,1234HMOVCL,4ROLAX,CLDECAXMOVCX,4MULCXINT20H試問:每條指令執(zhí)行完后,AX寄存器的內(nèi)容是什么?每條指令執(zhí)行完后,進位、符號和零標志的值是什么?程序結(jié)束時,AX和DX的內(nèi)容是什么?答案:指令本條指令執(zhí)行完后AX的內(nèi)容執(zhí)行完后CF,SF,ZF的值MOVAX,1234H1234H000MOVCL,41234H000ROLAX,CL2341H100DECAX2340H100MOVCX,42340H100MULCX8D00H010INT20H程序結(jié)束后,(AX)=8D00H
(DX)=0000H
第4章習題解答4.1編程實現(xiàn)Y=(X1+X2)/2。DATA SEGMENTX1DB?X2DB?YDW?DATA ENDSCODE SEGMENTASSUMECS:CODE,DS:DATAMOVAX,DATA;為DS設置段值MOVDS,AXMOVAL,X1;取變量X1送ALMOVBL,X2;取變量X2送BLADDAL,BLADCAH,0;X1+X2+進位送AXSARAX,1MOV[Y],AX;結(jié)果送YCODEENDSEND START4.2編程實現(xiàn)使鍵盤上A、B、C、D六個字母鍵成為4條輸入命令,使之分別對應不同算法的控制子程序。MOVAH,lINT21H;1號功能調(diào)用,鍵盤接收CMPAL,‘A’;鍵值為A,轉(zhuǎn)PA子程序JEPACMPAL,‘B’;鍵值為B,轉(zhuǎn)PB子程序JEPBCMPAL,‘C’;鍵值為C,轉(zhuǎn)PC子程序JEPCCMPAL,‘D’;鍵值為D,轉(zhuǎn)PD子程序JEPDHLT;鍵值非A、B、C、D,停止PA:…;A號控制子程序入口PB:…;B號控制子程序入口PC:…;C號控制子程序入口PD:…;D號控制子程序入口4.3試編寫一程序統(tǒng)計出某一內(nèi)存單元中‘1’的個數(shù).DATASEGMENTXDADW3AD8HCONTDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCL,0MOVAX,XDALOP:CMPAX,0JZEXITSHLAX,1JNCNEXTINCCLNEXT:JMPLOPEXIT:MOVCONT,CLINT20HCODEENDSENDSTART4.4利用學號查學生的數(shù)學成績表。DATASEGMENTTABLEDB81,78,90,64,85,76,93,82,57,80DB73,62,87,77,74,86,95,91,82,71NUMDB8MATHDB?DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCOSEGSEGMENTASSUMECS:COSEG,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVBX,OFFSETTABLE;BX指向表首址XORAH,AHMOVAL,NUMDECAL;實際學號是從1開始的ADDBX,AX;BX加上學號指向要查的成績MOVAL,[BX];查到成績送ALMOVMATH,AL;存結(jié)果MOVAH,4CH;返回DOSINT21HCOSEGENDSENDSTART4.5設有兩個數(shù)組X和Y,它們都有8個元素,其元素按下標從小到大的順序存放在數(shù)據(jù)段中。試編寫程序完成下列計算:Z1=X1+Y1Z2=X2-Y2Z3=X3+Y3Z4=X4-Y4Z5=X5-Y5Z6=X6+Y6Z7=X7+Y7Z8=X8-Y8由于循環(huán)體中有“+”和“-”兩種可能的運算,通過設置標志0和1來判斷。八個運算表達式由8位邏輯尺:10011010B來識別。DATASEGMENTXDB0A2H,7CH,34H,9FH,0F4H,10H,39H,5BHYDB14H,05BH,28H,7AH,0EH,13H,46H,2CHLENEQU$—YZDBLENDUP(?)LOGRDB10011010BDATAENDSSTACK0SEGMENTPARASTACKDW20HDUP(0)STACK0ENDSCOSEGSEGMENTASSUMECS:COSEG,DS:DATA,SS:STACK0BEGIN:MOVAX,DATAMOVDS,AXMOVCX,LEN;初始化計數(shù)器MOVSI,0;初始化指針MOVBL,LOGR;初始化邏輯尺LOP:MOVAL,X[SI]SHRBL,1;標志位送CFJCSUB1;為1,轉(zhuǎn)做減法ADDAL,Y[SI];為0,做加法JMPRESSUB1:SUBAL,Y[SI]RES:MOVZ[SI],AL;存結(jié)果INCSI;修改指針LOOPLOPMOVAH,4CHINT21HCOSEGENDSENDBEGIN4.6編寫一程序,求級數(shù)12+22+32+…的前N項和。分析:對于N2的計算采用連加的方法,即是:N2=N×N=N+N+…+N,即N個N相加。本題程序采用雙重循環(huán)。內(nèi)循環(huán)計算級數(shù)各項的值,外循環(huán)計算各級數(shù)項之和。DATASEGMENTSUMDW?NDB20DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK1START:MOVAX,DATAMOVDS,AXMOVDX,0MOVCX,0MOVCL,N;設置外循環(huán)次數(shù)LOP1:MOVAX,0MOVBX,CX;設置內(nèi)循環(huán)次數(shù)LOP2:ADDAX,CX;求級數(shù)項的值
DECBX
JNZLOP2;BX計數(shù)不為0,繼續(xù)內(nèi)循環(huán)
ADDDX,AX;累加級數(shù)項
LOOPLOP1;CX計數(shù)不為0,繼續(xù)循環(huán)
MOVSUM,DX;存級數(shù)和
MOVAH,4CH
INT21H
CODEENDS
ENDSTART4.7利用DOS系統(tǒng)功能調(diào)用實現(xiàn)人機對話。根據(jù)屏幕上顯示的提示信息”WHATISYOURSCHOOL?”,編程顯示字符串”TsinghuaUniversity”。DATA SEGMENTMESG DB ‘WHATISYOURSCHOOL?$’STRIDB‘TsinghuaUniversity’,‘$’DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSETMESG MOV AH,09H INT 21H LEA DX,STRI MOV AH,09H INT 21H MOV AH,4CH;返回DOS INT 21HCODEENDS ENDSTART
第5章習題解答5.1半導體存儲器分為哪兩大類?它們的用途和主要區(qū)別是什么?答:半導體存儲器可以分為隨機存取存儲器(RAM,RandomAccessMemory)和只讀存儲器(ROM,ReadOnlyMemory)兩大類。RAM可以寫入和讀出數(shù)據(jù),存取速度較高,但是系統(tǒng)掉電后數(shù)據(jù)會丟失。所以RAM通常用來存放暫時性的輸入/輸出數(shù)據(jù)、中間運算結(jié)果和用戶程序。而ROM的特點是數(shù)據(jù)只能讀出,且讀取速度相對較慢,系統(tǒng)掉電后存儲于其中的信息保留不變,所以ROM常用來保存無需修改可長期使用的程序和數(shù)據(jù)。5.2存儲器的主要性能指標有哪些?答:衡量半導體存儲器性能的的主要技術指標包括:存儲容量、存取時間、可靠性、功耗、性價比以及體積大小、工作溫度范圍等指標。5.3存儲器由哪幾個部分組成?各部分的功能是什么?答:從宏觀上看,半導體內(nèi)存儲器都是由存儲體、地址寄存器、地址譯碼驅(qū)動電路、數(shù)據(jù)寄存器、讀/寫驅(qū)動電路和讀/寫控制邏輯等6個部分組成。存儲體是用來存放數(shù)據(jù)信息的矩陣,是存儲單元的集合體。地址寄存器是用于存放CPU要訪問存儲單元的物理地址。地址譯碼驅(qū)動電路通過將CPU發(fā)送來的地址信息轉(zhuǎn)換為與其對應輸出線的高電平或低電平來選中一個存儲單元;同時提供驅(qū)動電流去驅(qū)動相應的讀/寫電路,完成對被選中存儲單元的讀/寫操作。數(shù)據(jù)寄存器是為方便存儲器系統(tǒng)與數(shù)據(jù)總線相連,協(xié)調(diào)CPU與存儲器系統(tǒng)之間運行速度的差異,暫時存放從存儲單元讀出或要寫入存儲器的數(shù)據(jù)。讀/寫驅(qū)動電路包括讀出放大器,寫入電路和讀寫控制電路。讀/寫控制邏輯產(chǎn)生一組時序信號來控制存儲器的讀/寫操作。5.4簡述SRAM和DRAM各自的特點?答:只要計算機系統(tǒng)不掉電,SRAM所存儲的信息不會丟失。SRAM的工作速度快、穩(wěn)定可靠,使用方便,不需要外加刷新電路,但是集成度不易做得很高,功耗較大,成本也高。DRAM所存儲的數(shù)據(jù)時間長了會消失,為了維持DRAM所存儲的信息,需要外加刷新電路定期地對DRAM進行刷新。DRAM的集成度可以做得很高,成本低、功耗小,工作速度比SRAM慢。5.5簡述DRAM存儲器如何進行刷新?答:所謂刷新,就是不斷地每隔一定時間(一般每隔2ms)對DRAM的所有存儲單元進行讀出,經(jīng)刷新放大器放大后再重新寫入原基本存儲電路中,以維持電容上的電荷,進而使所存信息保持不變。對DRAM必須設置專門的外部控制電路和安排專門的刷新周期來系統(tǒng)地對DRAM進行刷新。5.6簡述ROM、PROM、EPROM、E2PROM在功能上各有何特點。答:ROM是對只讀存儲器的總稱,它所儲存的信息只能被讀出,不能隨機寫入。PROM的內(nèi)容寫入后無法進行修改。EPROM可以采用專門的編程器寫入數(shù)據(jù),存儲數(shù)據(jù)可以用紫外線擦除器進行擦除,所以EPROM可以重復編程。E2PROM是一種在線可編程只讀存儲器,它能像RAM那樣隨機地進行改寫,又能像ROM那樣在掉電時使已經(jīng)保存的信息不丟失,即E2PROM兼有RAM和ROM的雙重功能特點;存儲器的地址分配及片選問題;5.7存儲器與CPU之間連接要注意哪些事項?答:在存儲器與CPU連接時,原則上可以將存儲器的地址線、數(shù)據(jù)線與控制信號線分別與CPU的系統(tǒng)地址總線、數(shù)據(jù)總線和控制總線連接,在實際應用時必須考慮以下問題:CPU總線負載能力;CPU時序與存儲器芯片存取速度的配合問題;控制信號的連接;數(shù)據(jù)信號的連接。5.8存儲器擴展設計的方法有哪些?答:存儲器的擴展,有位擴展、字擴展和字位擴展3種方式。存儲器芯片的位擴展:計算機的存儲器系統(tǒng)通常以字節(jié)為單位進行操作的,如果一個存儲器芯片的容量已經(jīng)滿足存儲器系統(tǒng)的要求,但其字長不能同時提供系統(tǒng)所要求的位寬,就必須把幾塊芯片組合起來使用以滿足系統(tǒng)對字長的要求,這就是存儲器芯片的“位擴展”。存儲器芯片的字擴展:當存儲器芯片的字長符合存儲器系統(tǒng)的要求,但存儲容量太小,存儲單元的個數(shù)不夠時,需要增加存儲單元的數(shù)量,即進行字擴充的方法來滿足系統(tǒng)的要求。字位擴展:當存儲器芯片的字長和容量都不符合存儲器系統(tǒng)的要求,這時就需要用多片存儲器芯片同時進行位擴展和字擴展。5.9存儲器芯片片選信號產(chǎn)生的方式有哪三種?各自的特點是什么?答:存儲器芯片片選信號產(chǎn)生的方式有三種方法,即線選法、全譯碼法和部分譯碼法。線選法的優(yōu)點是電路簡單,選擇芯片不需外加邏輯電路。但線選法會造成系統(tǒng)存儲器空間的浪費,每個芯片所占的地址空間把整個地址空間分成了相互隔離的區(qū)段,地址空間不連續(xù),這給編程帶來一定困難,所以,線選法只適用于容量較少的簡單微機系統(tǒng)或不需要擴充內(nèi)存空間的系統(tǒng)中。在全譯碼方式下,存儲器芯片上的每一個存儲單元在整個內(nèi)存空間中地址是唯一的,并且各芯片所占地址空間是相互鄰接。全譯碼法需要較多的邏輯電路資源。部分譯碼法使用地址線的部分高位產(chǎn)生片選信號,因此會發(fā)生每個存儲單元有多個地址的情況,出現(xiàn)地址重疊現(xiàn)象,造成系統(tǒng)地址空間資源的部分浪費。5.10一個存儲芯片的容量為8KB×4,該芯片的地址線為多少條?數(shù)據(jù)線為多少條?答:如果是SRAM芯片,該芯片容量為8KB×4=32Kbyte,有8K×4=32K個地址單元,215=8192,所以地址線有15條。數(shù)據(jù)線有8條。5.11一個DRAM芯片外部引腳信號中有8條數(shù)據(jù)線,10條地址線,計算其存儲容量。答:DRAM芯片行列地址復用,所以該DRAM芯片內(nèi)部存儲矩陣共有20位地址,該芯片的存儲容量為1M字節(jié)。5.12一片32MB×8的DRAM芯片,它的數(shù)據(jù)線和地址線引腳數(shù)分別為多少條?答:該DRAM芯片容量為32MB×8,即256MB。內(nèi)部存儲矩陣行列地址信號共28位,由于DRAM芯片行列地址復用,所以芯片的地址引腳有14條。數(shù)據(jù)引腳有8條。5.13某RAM芯片的存儲容量為1024×8位,該芯片的外部引腳應有幾條地址線?幾條數(shù)據(jù)線?若已知某RAM芯片引腳中有13條地址線,8條數(shù)據(jù)線,那么該芯片的存儲容量是多少?答:(1)該RAM芯片,地址線有10條,數(shù)據(jù)線8條。(2)該芯片的存儲容量為8K字節(jié)。5.14用Intel21141K×4位的RAM芯片組成32K×8位的存儲器,需要多少塊這樣的芯片?答:32K×8/(1K×4)=64,需要64塊Intel2114芯片。5.15某8086系統(tǒng)用2764ROM芯片和6264SRAM芯片構(gòu)成16KB的內(nèi)存。其中,RAM的地址范圍為FC000H~FDFFFH,ROM的地址范圍為FE000H~FFFFFH。試利用74LS138譯碼,畫出存儲器與CPU的連接圖,并指出每片存儲芯片的地址范圍。答:2764和6264均為8KB的存儲芯片,需要13根地址線。需要2764和6264各1片構(gòu)成構(gòu)成16KB的內(nèi)存。6264SRAM和2764ROM的地址信號連接如下表。A19~A14A13A12~A0SRAM起始地址FC000H1111,1100,0000,0000,0000結(jié)束地址FDFFFH1111,1101,1111,1111,1111ROM起始地址FE000H1111,1110,0000,0000,0000結(jié)束地址FFFFFH1111,1111,1111,1111,1111利用A15~A13作為譯碼輸入,A19~A16作為譯碼控制,譯碼電路連接如下。5.16利用全地址譯碼將6264芯片接到8088系統(tǒng)總線上,地址范圍為30000H~31FFFH,畫出邏輯圖。答:6264有13根地址線,連接A12~A0用作片內(nèi)譯碼。高位地址A19~A13用作產(chǎn)生片選。A19~A13A12~A0SRAM起始地址30000H0011,0000,0000,0000,0000結(jié)束地址31FFFH0011,0001,1111,1111,11115.17若用2164芯片構(gòu)成容量為128KB的存儲器,需多少片2164?至少需多少根地址線?其中多少根用于片內(nèi)尋址?多少根用于片選譯碼?答:Intel2164芯片是容量為64K×1位的DRAM。128K×8/(64K×1)=16,需要16片2164。217=128K,所以總共需要17根地址線。其中低16根地址線用于片內(nèi)尋址,1根最高位地址線用于片選譯碼。
第6章習題解答6.1CPU與外設之間的數(shù)據(jù)傳輸控制方式有哪幾種?何謂程序控制方式?它有哪兩種基本方式?請分別用流程圖的形式描述出來。答:CPU與外設之間的數(shù)據(jù)傳輸有以下三種方式:程序方式、中斷方式、DMA方式,其中程序方式又可分為無條件傳送方式和條件傳送方式兩種方式。流程圖略。6.2用查詢式將DATA開始的存貯區(qū)的100個字節(jié)數(shù)據(jù)在FCH端口輸出,完成程序,狀態(tài)端口地址為:FFH。解答:DATASEGMENTBUFFDB100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODEDS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSETBUFF;送緩沖區(qū)指針MOVCX,100;送計數(shù)初值WAIT1:INAL,OFFH;查詢狀態(tài),若為1則等待TESTAL,01JNZWAIT1MOVAL,[BX]OUTOFCH,AL;輸出一個數(shù)據(jù)INCBXLOOPWAIT1MOVAH,4CHINT21HCODEENDSENDSTART6.3什么是接口?什么是端口?在8086/8088微機系統(tǒng)中,CPU是如何實現(xiàn)端口尋址的?答:接口是指連接外部設備與微型計算機的電路,接口電路協(xié)助完成主機與外設交換信息端口是指輸入/輸出接口中寄存器,CPU通過尋址端口與外部設備通信。8086/8088用低16位作為端口的尋址線,具體I/O端口尋址指令:INAL,DX。6.48086中斷分哪兩類?8086可處理多少種中斷?答:8086中斷分硬件中斷和軟件中斷兩類;8086的中斷可以分成外部中斷和內(nèi)部中斷兩類。8086CPU的中斷系統(tǒng)具有256個中斷,每個中斷用一個唯一的中斷向量號標識。向量號也稱為矢量號或類型號,它用一個字節(jié)表示:0到255,對應256個中斷。6.58086可屏蔽中斷請求輸入線是什么?"可屏蔽"的涵義是什么?答:可屏蔽中斷請求輸入線為INTR,“可屏蔽”是指該請求可經(jīng)軟件清除標志寄存器中IF位而被禁止。6.68086的中斷向量表如何組成?作用是什么?答:8086CPU中斷向量表存放在0地址處開始的1024個存儲單元中,地址為0000:0000~0000:03FF,用來存放中斷碼對應中斷處理程序的入口地址,一個地址包括段地址和偏移地址,高地址存放段地址,低地址存放偏移地址,因此需要四個字節(jié)來存儲中斷處理程序的入口地址,256個中斷信號處理程序需要1024個字節(jié)來存儲??捎脕硇纬上鄳闹袛喾粘绦虻娜肟诘刂坊虼娣胖袛喾粘绦虻氖椎刂?。6.78086如何響應一個可屏蔽中斷請求?簡述響應過程。答:當CPU檢測到可屏蔽中斷信息時,如果IF=1,則CPU在執(zhí)行完當前指令后響應中斷,引發(fā)中斷過程。8086響應可屏蔽中斷的過程:1.從數(shù)據(jù)線上讀取中斷類型號,將其存入內(nèi)部暫存器;2.將標志寄存器PSW值入;3.將PSW中的中斷允許標志IF和單步標志TF清0,以屏蔽外部其他中斷請求,以及避免CPU以單步方式執(zhí)行中斷處理程序;4.保護斷點,將當前指令下面一條指令的段地址CS和指令指針I(yè)P的值入棧,使中斷處理完畢后,能正確返回到主程序繼續(xù)執(zhí)行;5根據(jù)中斷類型號到中斷向量表中找到中斷向量,轉(zhuǎn)入相應的中斷服務子程序;6中斷服務子程序結(jié)束后,從堆棧中依次彈才出IP,CS和平時外,然后返回主程序斷點處,繼續(xù)執(zhí)行原來的程序。
第7章習題解答7.18255A的3個端口在功能上各有什么不同特點?8255A內(nèi)部的A組和B組控制部件各管理那些端口?答:8255A內(nèi)部包含有3個8位輸入/輸出數(shù)據(jù)端口A、B、C。端口A包含一個8位數(shù)據(jù)輸出鎖存/緩沖寄存器和一個8位數(shù)據(jù)輸入鎖存器,可工作于方式0、1、2;端口B包含一個8位數(shù)據(jù)輸入/輸出、鎖存/緩沖寄存器和一個8位數(shù)據(jù)輸入緩沖寄存器,可工作于方式0、1;端口C包含一個輸出鎖存/緩沖寄存器和一個輸入緩沖寄存器,沒有鎖存功能,可工作于方式0,必要時它又可分為兩個4位輸入/輸出端口(PC7~PC4和PC3~PC0)。當數(shù)據(jù)傳送不需要聯(lián)絡信號時,三個端口均可用作輸入或輸出口。當A,B端口工作時需要聯(lián)絡信號時,端口C可作為端口A和端口B的聯(lián)絡信號。端口控制邏輯分為A組和B組,A組控制邏輯管理端口A與端口C的高4位(PC7~PC4),B組控制邏輯管理端口B與端口C的低4位(PC0~PC3)。7.28255A有哪幾種工作方式?每種工作方式有何特點?答:在8255A芯片中,各輸入/輸出端口共有3種基本工作方式,即:方式0——基本輸入/輸出方式;方式1——選通輸入/輸出方式;方式2——雙向總線輸入/輸出方式。方式0是一種基本輸入/輸出方式,當8255A工作在方式0時,不需要設置專門的聯(lián)絡信號,只能用于簡單的,無條件的數(shù)據(jù)或查詢式I/O傳輸場合。方式1是一種選通輸入/輸出方式,在這種工作方式下,端口A和端口B作為數(shù)據(jù)口,都可工作于輸入或輸出方式,且都具有鎖存能力,但它們必須在聯(lián)絡信號的控制下完成I/O操作。輸入或輸出模式確定后不會變化,除非重新初始化。方式2又稱為雙向輸入/輸出方式,端口A的I/O線既可以輸入數(shù)據(jù)也可以輸出數(shù)據(jù),輸入和輸出的數(shù)據(jù)都能被鎖存,但是輸入和輸出過程不能同時進行。端口C提供聯(lián)絡控制信號。7.38255A的方式選擇字和置位復位字寫入到什么端口?用什么方式區(qū)分它們?答:8255A的方式選擇字和置位復位字的端口選擇信號A1A0=11。方式選擇控制字的D7=1,而置位/復位控制字的D7=0。7.48255A中,端口C有哪些獨特的用法?答:8255A的端口C分為高4位和低4位分別進行設置,既可以作為方式0,工作于基本輸入/輸出方式,也可以作為端口A和端口B在方式1或方式2的聯(lián)絡控制信號,而且還有位控制功能,可由置位/復位控制字對C口某個位置位(1)或復位(0)。7.5若A口工作在方式2,B口工作在方式1輸入,C口各位作用是什么?若A口工作在方式2,B口工作在方式0輸出,C口各位的作用又是什么?答:若A口工作在方式2,C口提供聯(lián)絡控制信號如下:PC7作為????????信號,PC6作為????????信號,PC5作為IBFA信號,PC4作為????????信號,PC3作為INTRA信號。B口工作在方式1輸入,PC2作為????????信號,PC1作為IBFB信號,PC0作為INTRB信號。若A口工作在方式2,B口工作在方式0輸出,C口的PC7~PC3的功能同上。而PC2~PC0可以工作于基本輸入/輸出方式。7.6假定8255A的地址為60H~63H,A口工作在方式2,B口工作在方式1輸入,請寫出初始化程序段。答:MOVDX,63HMOVAL,11000110BOUTDX,AL7.7利用8255A模擬交通燈的控制:在十字路口的縱橫二個方向上均有紅、黃、綠三色交通燈(用三種顏色的發(fā)光二極管模擬),要求兩個方向上的交通燈能按正常規(guī)律亮滅,畫出硬件連線圖并寫出相應的控制程序。設8255A的端口地址為60H~63H。答:如果十字路口兩個方向四個路口為東南西北,每個路口有3個交通燈,用8255的PC0~PC7和PB4~PB7連接12個LED,電路如下圖所示。8255A的連接如下圖??刂瞥绦蛉缦?。IOCON EQU63HIOA EQU60HIOB EQU61HIOC EQU62HCODE SEGMENT ASSUMECS:CODESTART: MOV AL,80H ;8255初始化 MOV DX,IOCON OUT DX,AL MOV DX,IOB MOV AL,0F0H ;4個路口黃燈全滅 OUT DX,AL MOV DX,IOC MOV AL,0F0H ;4個路口紅燈全亮,綠燈全滅 OUT DX,AL CALL DELAY1IOLED0: MOV AL,10100101B ;東西紅燈亮,南北綠燈亮 MOV DX,IOC OUT DX,AL CALL DELAY1 CALL DELAY1 OR AL,0F0H ;南北綠燈滅 OUT DX,AL MOV CX,8IOLED1: MOV DX,IOB MOV AL,10101111B ;南北路口黃燈亮 OUT DX,AL CALL DELAY2 OR AL,01010000B ;南北路口黃燈滅 OUT DX,AL CALL DELAY2 LOOP IOLED1 ;循環(huán)IOLED1—南北黃燈閃爍8次 MOV DX,IOC MOV AL,0F0H ;4個路口紅燈全亮 OUT DX,AL CALL DELAY2 MOV AL,01011010B ;南北紅燈亮,東西綠燈亮 OUT DX,AL CALL DELAY1 OR AL,0F0H ;東西綠燈滅 OUT DX,AL MOV CX,8IOLED2: MOV DX,IOB AND AL,01011111B ;東西黃燈亮 OUT DX,AL CALL DELAY2 OR AL,10100000B ;東西黃燈滅 OUT DX,AL CALL DELAY2 LOOP IOLED2 ;循環(huán)IOLED2—東西黃燈閃爍8次 MOV DX,IOC MOV AL,0F0H ;4個路口紅燈全亮 OUT DX,AL CALL DELAY2 JMP IOLED0DELAY1: PUSH AX PUSH CX MOV CX,0030HDELY2: CALL DELAY2 LOOP DELY2 POP CX POP AX RETDELAY2: PUSH CX MOV CX,8000HDELA1: LOOP DELA1 POP CX RETCODE ENDS END START7.8請用8255A設計一個并行接口,實現(xiàn)主機與打印機的連接,并給出以中斷方式實現(xiàn)與打印機通信的程序。設8255A的端口地址為60H~63H。答:8255A作中斷方式工作的字符打印機的接口,如圖所示。8255A向8259A請求中斷,8259A向CPU請求中斷,CPU響應中斷后執(zhí)行中斷服務程序,向8255A的A端口輸出數(shù)據(jù),然后數(shù)據(jù)傳到打印機打印。程序由初始化程序、主程序、中斷服務程序三大部分組成。初始化程序由8259A初始化、8255A初始化、中斷服務初始化幾部分組成。主程序沒有別的任務,循環(huán)等待中斷,而中斷服務程序執(zhí)行完畢以后仍然返回這條跳轉(zhuǎn)指令。中斷服務程序從數(shù)據(jù)緩沖區(qū)取1個字節(jié)數(shù)據(jù),輸出到8255A的A端口;用對C端口的置1/清0命令使PC0輸出負脈沖STB*,從而將數(shù)據(jù)送入打印機;然后發(fā)一條中斷結(jié)束命令;最后中斷返回。每當8255A端口A數(shù)據(jù)輸出寄存器空,需要CPU送下一個數(shù)據(jù)的時候,PC3自動變?yōu)楦唠娖?,?259AIR3請求中斷;8259A通過INT引腳向CPU請求中斷;CPU響應中斷,根據(jù)8259A提供的中斷類型號,到中斷向量表中取得中斷向量;然后轉(zhuǎn)移到中斷服務程序執(zhí)行。設8259A的端口地址為50H和51H。;8255A初始化程序INIT: MOVAL,0A0H ;A端口,方式1,輸出 OUT63H,AL MOVAL,01 ;PC0=1,STB*無效 OUT63H,AL MOVAL,0DH ;設置INTE(PC6=1),允許8255A請求中斷 OUT63H,AL ;8259A初始化程序 MOVAL,00010011B ;ICW1:上升沿請求中斷、單片 OUT50H,AL ;ICW1寫入偶端口 MOVAL,08H ;ICW2:中斷類型碼08H OUT51H,AL ;ICW2寫入奇端口 MOVAL,01H ;ICW4:非特殊全嵌套、非自動中斷結(jié)束方式、非緩沖 OUT51H,AL ;ICW4寫入奇端口 MOVAL,11110111B ;OCW1:允許IR3中斷 OUT51H,AL ;OCW1寫入奇端口 ;中斷服務初始化程序(把中斷服務程序的段地址和偏移地址寫入中斷向量表) XOR AX,AX MOV DS,AX ;DS=0,中斷向量表起始地址在0 LEA AX,INTPR ;取中斷服務程序偏移地址 MOV WORDPTR[0BH*4],AX;中斷號=0BH,中斷向量在向量表中偏 ;移地址為0BH×4 MOV AX,SEGINTPR ;取中斷服務程序段地址 MOV WORDPTR[0BH*4+2],AX ;寫向量高字 STI ;使IF為1,開放中斷;主程序MAIN: JMPMAIN ;以下中斷服務程序INTPR: MOV AL,[DI] ;DI為打印字符緩沖區(qū)指針,取字符數(shù)據(jù) INC DI OUT 060H,AL ;字符送A端口 MOVAL,0 ;使PC0為0,產(chǎn)生選通信號STB*負脈沖 OUT63H,AL INCAL ;使PC0為1,撤消選通信號 OUT63H,AL ; MOVAL,20H ;OCW2=20H,EOI命令 OUT50H,AL ;OCW2命令寫入偶端口 IRET ;中斷返回7.9說明PC機中揚聲器發(fā)生電路的工作原理,編寫產(chǎn)生頻率為1000Hz的發(fā)聲程序。答:在PC機中,揚聲器接口電路由8255A,8253,驅(qū)動器和低通濾波器構(gòu)成,8253是音頻信號源,8255作控制器,驅(qū)動器用來增大8253輸出的TTL電平信號的驅(qū)動能力,低通濾波器將脈沖信號轉(zhuǎn)換成接近正弦波的音頻信號,去驅(qū)動揚聲器發(fā)聲。設8253的端口號為40H~43H,8255A的端口號為60H~63H。8253輸入時鐘頻率為1.193182MHz,1.193182*106=1234DEH。產(chǎn)生頻率為1000Hz的發(fā)聲程序:MOV BX,1000;頻率1000HzMOV AL,10110110B;8253控制字,通道2,先寫低字節(jié),后寫高字節(jié);方式3,二進制計數(shù)OUT 43H,AL ;寫入控制字MOV DX,0012H ;被除數(shù)高位MOV AX,34DEH ;被除數(shù)低位DIV BX ;求計數(shù)初值n,結(jié)果在AX中OUT 42H,AL ;送出低8位MOV AL,AHOUT 42H,AL ;送出高8位IN AL,61H ;讀入8255A端口B的內(nèi)容MOV AH,AL ;保護B口的原狀態(tài)OR AL,03H ;使B口后兩位置1,其余位保留OUT 61H,AL ;接通揚聲器,發(fā)聲7.10如下圖所示,設8255A端口地址為2F80~2F83H,編寫程序設置8255A,使A組、B組均工作于方式0,A口輸出,B口輸出,C口高4位輸入,低4位輸出。然后讀入開關S的狀態(tài),若S打開,則使發(fā)光二極管熄滅;若S閉合,則使發(fā)光二極管點亮。答:8255A的控制字為:10001000B=88H。MOV AL,88HMOV DX,2F83H ;初始化8255AOUT DX,ALMOV DX,2F82HIN AL,DX ;輸入PC5MOV DX,2F81HAND AL,20H ;判斷PC5JZ L1 ;條件成立時PC5=0,S閉合MOV AL,0OUT DX,AL ;PB6=0JMP END1L1: MOV AL,40H ;PB6=1OUT DX,ALEND1:HLT第8章習題解答8.1與8253的3個計數(shù)通道相對應的有3個引腳:CLK、GATE和OUT,這3個引腳分別起什么作用?答:CLK:外部計數(shù)或定時脈沖的輸入端。每個通道工作時,都是對輸入到CLK引腳上的脈沖按二進制或十進制(BCD碼)進行減1計數(shù)。GATE:門控信號輸入端。用于啟動或禁止計數(shù)通道的工作,以使計數(shù)通道和計測對象的同步。OUT:計數(shù)通道的輸出端。以相應的電平指示計數(shù)的完成,或輸出脈沖波形表示定時時間。8.2可編程計數(shù)器/定時器8253有哪幾種工作方式?各有何特點?答:可編程計數(shù)器與定時器8253有6種工作方式:計數(shù)結(jié)束產(chǎn)生中斷;可重復觸發(fā)單穩(wěn)態(tài)觸發(fā)器;分頻器;方波發(fā)生器;軟件觸發(fā)選通;硬件觸發(fā)選通。特點分別如下:方式0是一種單次計數(shù)工作方式,在計數(shù)過程中,可由門控信號GATE暫停計數(shù),在寫入新的計數(shù)值后,計數(shù)器將立即按新的計數(shù)值重新開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 佛山建筑改造施工方案
- 統(tǒng)編版(2024)道德與法治七年級下冊第一單元 珍惜青春時光 單元測試卷(含答案)
- 公墓焚燒房施工方案
- 飼養(yǎng)池施工方案
- 中級葡萄酒知識培訓課件
- 2025屆浙江省寧波市北侖區(qū)重點達標名校中考生物模擬試卷含解析
- 中國黃金回購合同范例
- 個人獨資出資協(xié)議合同范例
- 學期安全教育與培訓計劃
- 高危地區(qū)保安人員的培訓需求計劃
- 2025年湖北武漢理工大學學生輔導員招聘18人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 北京服裝學院招聘考試題庫2024
- 金融科技概論-課件 第十五章 金融科技監(jiān)管與監(jiān)管科技
- 2024年江蘇省南京市中考數(shù)學試卷真題(含答案解析)
- 物資裝卸培訓課件
- DB5101-T 71-2020 成都市電動汽車充電設施 安全管理規(guī)范
- 2025年北京電子科技職業(yè)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年烏蘭察布醫(yī)學高等??茖W校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 高教版2023年中職教科書《語文》(基礎模塊)下冊教案全冊
- 《社群運營》全套教學課件
- 2024入團知識題庫(含答案)
評論
0/150
提交評論