




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第1章習(xí)題1.1 將下列二進制數(shù)轉(zhuǎn)換為十進制數(shù)和十六進制。(1)1101(2)=13=D(H)(2)11010(2)=26=1A(H)(3)110100(2)=52=34(H)(4)10101001(2)=169=A9(H)要點:從低位起,按每4位將對應(yīng)二進制轉(zhuǎn)換成十六進制。而不是通過十進制轉(zhuǎn)換。1.2 見上。1.3簡述3個門電路的基本元素在電路中對電平高低的作用。答:與、或、非。1.4 布爾代數(shù)有哪兩個特點?答:(1)值只有兩個;(2)只有與、或、反3種運算。1.5 布爾代數(shù)的“或運算”結(jié)果可用哪兩句話來歸納?其“與運算”又可歸納成哪兩句話“答:(1)“或運算”運算結(jié)果為有一真必為真,兩者皆
2、假才為假。(2)“與運算”有一假即為假,兩者皆真才為真。1.6 什么叫原碼、反碼及補碼?答:原碼就是一個數(shù)的機器數(shù)。反碼:將原碼每位取反,即為反碼。更準(zhǔn)確的是:正數(shù)的反碼就等于它的原碼; 負數(shù)的反碼就是它的原碼除符號位外,各位取反。補碼:反碼加1就是補碼。更準(zhǔn)確的是:正數(shù)的補碼就等于它的原碼; 負數(shù)的補碼就是它的反碼加1。 例:X1=100 1001 X2=100 1001則 : X1原 = 0100 1001 X1反 = 0100 1001X1補= 0100 1001 X2原 = 1100 1001 X2反 = 1011 0110 X2補 = X2反+1= 1011 01111.7 為什么需
3、要半加器和全加器,它們之間的主要區(qū)別是什么?答:(1)因為加法的第一位沒有進位,所以用半加器即可;而第二位起可能有進位,故需要考慮全加器;(2)兩者的區(qū)別是半加器為雙入雙出,全加器為三入雙出。1.8 用補碼法寫出下列減法的步驟:(1)1111(2)-1010(2)=?(2)=?(10)兩個數(shù)相減其實就是第一個數(shù)與第二個數(shù)的補碼相加。第一個數(shù)1111為正數(shù),其原碼為1111第二個數(shù)為1010),其機器碼(原碼)為:1010,反碼為0101,補碼為:0110兩者相加: 1111 + 0110 10101將最高位的進位1刪去,得結(jié)果為10101,即為5(10)這是按書上的簡單做法。按最正規(guī)的方法做如
4、下:若考慮兩個數(shù)屬于帶符號數(shù),第一個是正數(shù),補碼與原碼都為01111;第二個數(shù)是負數(shù),原碼為11010,反碼為10101,補碼為10101+1=10110第一個數(shù)與第二個數(shù)的補碼相加,即為: 01111 + 10110 100101將最高位的進位刪去,得結(jié)果為00101,即為5(10)建議用第二種方法為佳。答:(2)1100(2)-0011(2)=?(2)=?(2)答:按上述所講的正規(guī)方法做。第一個數(shù)的補碼=原碼=01100;第二個數(shù)的原碼(即機器碼)為10011,其反碼為11100,其補碼為11101;兩個數(shù)的補碼相加,即為: 01100 + 11101 = 101001將最高位的進位1刪去
5、,得結(jié)果為01001,即為9(10)1.9 做出101011(2)+011110(2)的門電路圖并求其相加的結(jié)果。答:相加結(jié)果為: 101011 + 011110 = 1001001得結(jié)果為1001001(2)。(注:相加時不去掉最高位的進位)門電路圖略去。1.10 做出第1.9題中兩數(shù)相減的門電路圖并求其相減的結(jié)果。答:若為101011-011110則第一個數(shù)為正數(shù),其補碼=原碼=0101011;第二個數(shù)為負數(shù),其原碼為1011110,反碼為1100001,補碼=反碼+1=1100001+1=1100010兩個數(shù)的補碼相加為: 0101011 + 1100010 = 1 0001101去掉最
6、高位的進位1,得結(jié)果為0001101,即為13(10)。例2: +0反 = 00000000 -0反 = 11111111即:數(shù)0的反碼也不是唯一的。第2章習(xí)題2.2 觸發(fā)器、寄存器及存儲器之間有什么關(guān)系?請畫出這幾種器件的符號。答:觸發(fā)器是存放一位二進制數(shù)字信號的基本單元。觸發(fā)器是計算機的記憶裝置的基本單元,也可以說是記憶細胞。觸發(fā)器可以組成寄存器,寄存器又可以組成存儲器。寄存器和存儲器統(tǒng)稱為計算機的記憶裝置。(2)其符號分別表示如下:2.4 累加器有何用處?畫出其符號。答:累加器作為ALU運算過程的代數(shù)和的臨時存儲處。2.5 三態(tài)輸出電路有何意義?其符號如何畫?答:三態(tài)輸出電路使得一條信號
7、傳輸線既能與一個觸發(fā)器接通,也可以與其斷開而與另外一個觸發(fā)器接通,從而使得一條信號線可以傳輸多個觸發(fā)器的信息。2.6 何謂L門及E門?它們在總線結(jié)構(gòu)中有何用處?答:(1)L門:高電平時使數(shù)據(jù)裝入、低電平時數(shù)據(jù)自鎖其中的電路 ;E門:E門即三態(tài)門,當(dāng)選通端E門為高電平時,可將信息從A端送到B端。(2)L門專管對寄存器的裝入數(shù)據(jù)的控制,而E門志管由寄存器輸出數(shù)據(jù)的控制。2.7 控制字是什么意義?試舉個例子說明。答:(1)控制字CON將各個寄存器的L門和E門的按次序排成一列,并且為了避免住處在公共總線中亂竄,規(guī)定在某一時鐘節(jié)拍,只有一個寄存器的L門為高電平,一個寄存器的E門為高電平,從而保證了E門為
8、高電平的寄存器的數(shù)據(jù)流入到L門為高電平的寄存器中去。(2)略去,詳見教材P31的表2-32.8 ROM和RAM各有何特點與用處?答:ROM是只讀存儲器,是用以存放固定程序的存儲器,一旦程序放進去之后,就不能再改變。也不能再寫入新的字節(jié),而只能讀出其中所存儲的內(nèi)容;RAM是隨機存儲器(又稱讀/寫存儲器),它與ROM的區(qū)別在于它不但能讀出存放在其中各個存儲單元的數(shù)據(jù),而且能夠隨時寫進新的數(shù)據(jù),或者改變原有數(shù)據(jù)。2.9 為什么要建立“地址”這個概念?答:因為一個存儲器可以包含數(shù)以千計的存儲單元,可以存儲很多數(shù)據(jù),為了便于存入和取出,需要對每個存儲單元確定一個固定地址。2.11 譯碼器有何用處?答:譯
9、碼器用來確定存儲單元的地址。地址譯碼器常用于計算機中對存儲單元地址的譯碼,即將一個地址代碼轉(zhuǎn)換成一個有效信號,從而選中對應(yīng)的單元。2.12 存儲地址寄存器(MAR)和存儲數(shù)據(jù)寄存器(MDR)各有何用處?答:MAR將所要尋找的存儲單元的地址暫存下來,以備下一條指令之用。MDR是將要寫入RAM中去的數(shù)據(jù)暫存起來,以等待控制器發(fā)出指令再將數(shù)據(jù)寫入RAM中去。P33 2,4,5,6,7,8,9,11,12第3章習(xí)題3.1 略去3.2 程序計數(shù)器PC的內(nèi)容是什么意義?答:程序計數(shù)器PC存儲的內(nèi)容是指令的地址碼。每次運行指令前,先復(fù)位到0,每取出執(zhí)行一條指令,PC加1.3.3指令寄存器IR從PROM接收到
10、指令字(8位)后的運行過程如何?起什么作用?答:(1)指令寄存器IR從PROM接收到指令字后,就立即將其高4位送到控制部件。(2)控制部件經(jīng)過分析后就發(fā)出控制指令,將IR的低4位數(shù)送到存儲地址寄存器MAR,MAR將此低4位數(shù)作為地址并用于訪問PROM。故第1次訪問PROM的是其指令區(qū),第2次訪問的是其數(shù)據(jù)區(qū)。3.4 略3.5 環(huán)形計數(shù)器有何用處?什么叫環(huán)形字?答:(1)環(huán)形計數(shù)器用來發(fā)出順序控制信號(即用來發(fā)出環(huán)形字),從而產(chǎn)生機器節(jié)拍。(2)環(huán)形字是其6位輸出端依次輪流為高電平,并且是在最位一位(左邊第1位)置1后又回到右邊第1位,從而形成環(huán)形置位。3.6 什么叫例行程序?什么叫機器周期、取
11、指周期和執(zhí)行周期?本章簡化式計算機的機器周期包括幾個時鐘周期(機器節(jié)拍)?機器周期是否一定是固定不變的?答:(1)例行程序:由廠家編好的執(zhí)行每個程序(在本章中即為每條指令)所需要的機器節(jié)拍(3個,見P49)(2)機器周期:執(zhí)行一條指令的時間。(3)取指周期:取一條指令所需的3個機器節(jié)拍。(4)執(zhí)行周期:執(zhí)行一條指令所需的機器節(jié)拍(一般也為3個機器節(jié)拍)(5)本章簡化式計算機的機器周期包括6個機器節(jié)拍。補充:機器節(jié)拍:即一個時鐘周期(時鐘一個高電平+一 個低電平)(6)不一定。只不過固定了在6個節(jié)拍完成一個機器周期的計算機被稱為固定周期的計算機。3.7 控制部件包括哪些主要環(huán)節(jié)?各有何用處?答:
12、(1)控制部件包括環(huán)形計數(shù)器、指令譯碼器、控制矩陣和其他控制電路。(2)環(huán)形計數(shù)器用來產(chǎn)生環(huán)形字,從而產(chǎn)生機器節(jié)拍; 指令譯碼器:將高四位組成的編碼信息譯成某一控制線為高電位。控制矩陣:用來產(chǎn)生控制字CON,即產(chǎn)生所有控制信號。其他控制電路包含時鐘脈沖發(fā)生器、運行/停車觸發(fā)器、“啟動”和“清除”按鈕。其作用見P54.3.8 子程序計數(shù)器有何用處?答:也是用來作為一個程序計數(shù)器的。3.9-3.11 略去3.12 指令寄存器IR是如何將其指令字段和地址字段分送出去的?這兩個字段的位數(shù)是否保持不變?答:(1)指令寄存器IR將8位指令字的高4位作為指令字段送到控制部件,而將低4位做為地址字段通過總線送
13、到存儲地址寄存器MAR中去。(2) 對,保持不變。這由制造廠家確定。第4章習(xí)題4.1 8086CPU與8088CPU有哪些相同之處?又有哪些區(qū)別?答:兩者的內(nèi)部結(jié)構(gòu)基本相同,內(nèi)部都采用16位字進行操作及存儲器尋址,兩者的軟件完全兼容,程序的執(zhí)行也完全相同,兩種處理器都封裝在相同的40腳雙列直插組件(DIP)中。但它們的外部性能有區(qū)別。8086是16位數(shù)據(jù)總線,而8088是8位數(shù)據(jù)總線,在處理一個16位數(shù)據(jù)字時,8088需要兩步操作而8086只需要一步。4.2 8086 CPU從功能上分為幾部分?各部分由什么組成?各部分的功能是什么?答:8086CPU從功能上分為總線接口部分BIU和執(zhí)行部件EU
14、兩部分。其中總線接口部分的功能是負責(zé)與存儲器、I/O端口傳送數(shù)據(jù),即BIU管理在存儲器中存取程序和數(shù)據(jù)的實際處理過程。執(zhí)行部件EU的功能負責(zé)指令的執(zhí)行。將指令譯碼并利用內(nèi)部的寄存器和ALU對數(shù)據(jù)進行所需的處理。BIU由4個段寄存器(CS、ES、DS、SS)、16位指令指針寄存器IP、20位的地址加法器和6字節(jié)的指令隊列組成。EU由4個通過寄存器(AX、BX、CX、DX)、4個專用寄存器(SI、DI、SP、BP)、標(biāo)志寄存器FR、算術(shù)邏輯部件ALU組成。4.3 8086 CPU有哪些寄存器組成?各有什么用途?標(biāo)志寄存器的各標(biāo)志位在什么情況下置位?答:8086 CPU由4個通用寄存器(AX、BX、
15、CX、DX)、4個專用寄存器(SI、DI、SP、BP)、標(biāo)志寄存器FR組成,共9個寄存器。4個通用寄存器既可作為16位寄存器用,也可作為8位寄存器使用。其中AX寄存器也常稱為累加器。其它寄存器的用途見教材。標(biāo)志寄存器有6個狀態(tài)標(biāo)志(SF、ZF、PF、CF、AF、OF)和3個控制標(biāo)志位(DF、IF、TF)。其具體置位見P75的表4-1.4.4 8086系統(tǒng)中的物理地址是如何得到的?假如CS=2000H,IP=2100H其物理地址應(yīng)是多少?答:8086系統(tǒng)中的物理地址是通過BIU中的20位地址加法器得到的。物理地址計算公式為CS段地址*16(即二進制左移4位,或者十六進制左移1位)+IP偏移地址。
16、按計算公式,本題中的物理地址為20000H+2100H=22100H。4.5 什么叫總線周期?8086CPU的一個總線周期包括多少時鐘周期,什么情況下要插入TW等待周期?插入多少個TW取決于什么因素?答:總線周期是CPU或其他總線控制設(shè)備訪問一次存儲器或I/O端口所需的時間。在總線周期中需要利用總路線。補充:指令周期:指令周期是機器執(zhí)行一條指令所需的時間。8086CPU的一個標(biāo)準(zhǔn)總線周期包括4個時鐘周期。當(dāng)4個時鐘周期不能完成所規(guī)定的操作時,可以插入一個或多個等待時鐘周期TW。插入多少個TW取決于所訪問的存儲器或者I/O設(shè)備是否準(zhǔn)備就緒,此信號由引腳READY發(fā)出。4.6 什么是最大模式?什么
17、是最小模式?用什么方法將8086/8088置為最大模式和最小模式?答:所謂最小模式,就是在系統(tǒng)中只有8086/8088一個微處理器。最大模式中,飲包含兩個或多個微處理器,其中主處理器是8086/8088,其他處理器是協(xié)處理器(如數(shù)值運算協(xié)處理器8087,輸入/輸出協(xié)處理器8089)。用硬件方法來決定8086/8088的工作模式,具體是通過引腳控制信號引腳來決定,其接+5伏,則為最小模式,接地為最大模式。4.7 什么是地址鎖存器?8086/8088系統(tǒng)中為什么要用地址鎖存器?鎖存的是什么信息?答:(1)地址鎖存器就是一個寄存器,它根據(jù)控制信號的狀態(tài),將總線上的地址代碼暫存起來,即用于“鎖定”一個
18、(系列)數(shù)字狀態(tài)的電路。簡答:地址鎖存器是用來鎖存/保存地址的一個寄存器(即一個普通的時序電路),是觸發(fā)器的原始形式。目的是某次傳送數(shù)據(jù)并不能一次完成所以鎖存地址以免CPU重復(fù)的傳送一個地址。原理:CPU送地址到鎖存器8282/8283之后,內(nèi)存在地址鎖存器中找地址,而不是向CPU要地址。(2)因為8060/8088系統(tǒng)采用的是地址/數(shù)據(jù)分時復(fù)用總線,即用同一總線傳輸數(shù)據(jù)又傳輸?shù)刂?,?dāng)微處理器與存儲器或IO交換信號時,首先由CPU發(fā)出存儲器地址,同時發(fā)出允許鎖存ALE給鎖存器,當(dāng)鎖存器接到該信號后將地址/數(shù)據(jù)總線上的地址鎖存在總線上,隨后才能傳輸數(shù)據(jù)。個人理解:因為在總線周期的前半部分,CPU
19、總是送出地址信號和BHE(總線高允許)信號,為了通知地址已經(jīng)準(zhǔn)備好了,可以被所鎖存,CPU會送出高電平允許鎖存信號ALE。此時地址信號和BHE信號被鎖存。由于有了鎖存器對地址信號和BHE信號的鎖存,CPU在總線周期的后半部分,地址和數(shù)據(jù)都在總線上,確保了CPU對鎖存器和I/O接口的讀/寫操作。(3)鎖存的是復(fù)用總線上的地址信息。4.8 8086/8088系統(tǒng)中的8286是什么器件?起什么作用?答:(1)8286是總線驅(qū)動器(又稱總線收發(fā)器,雙向數(shù)據(jù)緩沖器)。(2)在一個系統(tǒng)所含的外設(shè)接口較多時,它用來增加數(shù)據(jù)總線的驅(qū)動能力。4.9 8086/8088系統(tǒng)中用時鐘發(fā)生器8284A產(chǎn)生哪些信號?答
20、:8284A產(chǎn)生恒定的時鐘信號、準(zhǔn)備信號(READY)及復(fù)位信號(RESET)。4.10 8086最基本的操作是什么?答:是總線操作4.11 8086/8088系統(tǒng)中引入了哪些中斷?是如何引入的?答:8086共有256種類型的中斷。從產(chǎn)生中斷的方法,可以將其分為硬件中斷和軟件中斷兩大類,硬件中斷中的非屏蔽中斷是通過CPU的NMI引腳進入的,可屏蔽中斷是通過CPU的INTR引腳進入的,并且只有當(dāng)中斷允許標(biāo)志IF為1時,非屏蔽中斷才能進入。軟件中斷是CPU根據(jù)軟件中的某條指令或者軟件對標(biāo)志寄存器中某個標(biāo)志的設(shè)置而產(chǎn)生的。4.12 什么是可屏蔽中斷?什么是非屏蔽中斷?可屏蔽中斷是指受中斷標(biāo)志IF屏蔽
21、的中斷,由INTR引腳進入。非屏蔽中斷是不受中斷標(biāo)志IF屏蔽的中斷,由NMI引腳進入。4.13 什么是中斷向量?中斷向量表指的是什么?中斷向量表放在什么地方?答:(1)中斷向量是中斷處理子程序的入口地址,每個中斷類型對應(yīng)一個中斷向量。(2)中斷向量表是指在8086/8088微機系統(tǒng)的內(nèi)存中,專門留出的0段的000003FH區(qū)域,用于存放所有的256個中斷向量。(3)中斷向量表放在0段的000003FH區(qū)域。4.14 假如中斷類型為8,它的中斷服務(wù)入口地址是多少?答:中斷類型8*4=32,即十六進制20H,所以其中斷服務(wù)入口地址為20H.第5章習(xí)題5.1 分別指出下列指令中的源操作數(shù)和目的操作數(shù)
22、的尋址方式:(1)MOV SI, 200 ;源操作數(shù)為立即數(shù)尋址(2)MOV CX, DATASI ;源操作數(shù)為(3)ADD AX, BXDI ;源操作數(shù)為基址加變址的寄存器間接尋址(4)AND AX, BX 源操作數(shù)為寄存器尋址(5)MOV SI, AX ;源操作數(shù)為寄存器尋址(6)PUSHF ; 為寄存器尋址對于目的操作數(shù),前4小題均為寄存器尋址,(5)題為寄存器間接尋址。5.2 試述指令MOV AX, 2010H 和MOV AX, DS:2010H的區(qū)別中。答:前者為將十六進制數(shù)2010H送到寄存器AX中去; 后者為將數(shù)據(jù)段DS中偏移地址為2010H、2011H兩單元中的內(nèi)容送到AX中去
23、。5.3 寫出以下指令中內(nèi)存操作數(shù)的所在地址。(1)MOV AL, BX+5答:源操作數(shù)的地址為BX+5,默認段寄存器為數(shù)據(jù)段寄存器DS,又因BX為基址寄存器,所以尋址方式為數(shù)據(jù)段相對基址尋址;(2)MOV BP+5, AX答:目的操作數(shù)的地址為BP+5,默認段寄存器為堆棧段寄存器SS,又因BP為基址寄存器,所以尋址方式為堆棧段相對基址尋址;(3)INC BYTE PTR SI+3答:此句意思為將SI+3所指的存儲單元的內(nèi)容加1;PTR的意義是定義其后的內(nèi)容變量的新類型為字節(jié)屬性,具體用法見第7章P159. 內(nèi)存操作數(shù)的地址為SI+3,屬于相對變址尋址;(4)MOV DL, ES: BX+DI
24、答:源操作數(shù)為附加段基址加變址的尋址方式;(5)MOV BX, BX+SI+2答:源操作數(shù)的內(nèi)存地址為BX+SI+2,屬于數(shù)據(jù)段相對基址加變址尋址。5.4 判斷下列指令書寫是否正確:(1)MOV AL, BX 答:不對,一個8位,一個16位;(2)MOV AL,CL答:正確(3)INC BX答:正確(4)MOV 5, AL答:不對,目的操作數(shù)不能是立即數(shù)。(5) MOV BX, SI答:不對,兩個存儲單元之間不能直接傳送數(shù)據(jù);(6)MOV BL, F5H答:正確(7)MOV DX, 2000H答:正確(8)POP CS答:不對,段寄存器CS和立即數(shù)都不能作目的操作數(shù)(9) PUSH CS答:正
25、確。注:本部分可以用DEBUG中的-a指令進行調(diào)試以確認指令是否正確5.5 設(shè)堆棧指針SP的初值為2000H,AX=3000H,BX=5000H,試問:(1)執(zhí)行指令PUSH AX 后 SP=?答:執(zhí)行PUSH指令時,棧頂指針SP自動減2,所以SP=2000H-2= 1FFE H;(2)再執(zhí)行PUSH BX 及POP AX后SP=? AX=? BX=?答:執(zhí)行PUSH BX 后SP=1FFE H- 2;再執(zhí)行POP AX后SP=(1FEE H-2)+2=1FFE H;此時AX中的內(nèi)容為原BX中的內(nèi)容,故AX=5000H;而BX中的內(nèi)容沒有改動,即還是5000H.5.6 要想完成把2000H送
26、1000H中,用指令:MOV 1000H, 2000H是否正確 ?如果不正確,應(yīng)用什么方法?答:不正確,因為兩個存儲單元之間不能直接傳送數(shù)據(jù)。可以改為:MOV AX, 2000HMOV 1000H, AX5.7 假如想從100中減去AL中的內(nèi)容,用SUB 100,AL是否正確?如果不正確,應(yīng)用什么方法?答:不正確,因為立即數(shù)不能做為目的操作數(shù)??梢愿臑椋篗OV BL, 5AH ; 100的16進制數(shù)表達式為5AHSUB BL, AL5.8 用兩種方法寫出從88H端口讀入信息的指令。再用兩種方法寫出從42H口輸出100H的指令。答:法一:IN AL, 88H; 法二:MOV DL, 88H IN
27、 AL, DL(2) 法一:MOV AX, 0100H OUT 42H, AX; 將AX中的內(nèi)容輸出到42H、43H兩端口中,其中00H送42H端口中,01H送到43H端口中法二:MOV AX,0100H MOV DX, 42H OUT DX, AX5.9 假如AL=20H,BL=10H,當(dāng)執(zhí)行CMP AL,BL后,問:(1)若AL、BL中內(nèi)容是兩個無符號數(shù),比較結(jié)果如何?影響哪幾個標(biāo)志位? 第一個數(shù)AL為: 0002 0000第二個數(shù)BL為: 0001 0000 0001 0000答:對無符號數(shù),執(zhí)行CMP后影響 CF、ZF位。故執(zhí)行后標(biāo)志為分別為 ZF=0;CF=0;(2)若AL、BL中內(nèi)
28、容是兩個有符號數(shù),結(jié)果又如何?影響哪幾個標(biāo)志位?答:對有符號數(shù),執(zhí)行CMP指令后影響ZF和OF標(biāo)志位,不影響CF位。執(zhí)行后標(biāo)志位分別為ZF=0;OF=0第6章習(xí)題6.1讀下面程序段,請問:在什么情況下,本段程序的執(zhí)行結(jié)果是AH0? BEGIN: IN AL,5FH TEST AL,80H JZ BRCHl MOV AH,0 JMP STOP BRCHl: MOV AH,0FFH STOP: HLT解答:AL中的最高位為1時。6.2讀程序: START: IN AL,20H MOV BL,AL IN AL,30H MOV CL,AL MOV AX,0 ADLOP: ADD AL,BL ADC A
29、H,0 DEC CL JNZ ADLOP HLT 請問: (1)本程序?qū)崿F(xiàn)什么功能? (2)結(jié)果在哪里?解答:完成20H*30H,結(jié)果在AX中。6.3 請編一程序段完成AX*10的任務(wù)(要求不準(zhǔn)用乘法指令做)答:MOV BX,AX MOV CL 2 SHL AX, CL ;此句實現(xiàn)了AX=AX*4 ADD AX,BX ;此句使得AX=5AX SHL AX ,1 ;此句實現(xiàn)了5AX*2=10AX法二:MOV BX,AXMOV CL, 4SHL AX,CLSHL BX,1ADD AX,BX6.4編程序使: (1)AX寄存器低4位清零。 (2)BX寄存器低4位置“1”。 (3)CX寄存器低4位變反。
30、 (4)用TEST指令測試DL寄存器位3、位6是否同時為0,若是,將0送DL;否則l送DH。解答 :(1) AND AX ,0FFF0H (2) OR BX ,000FH (3) XOR CX ,000FH 或者NOT CX(但這樣CX的高4位也會變反) (4)TEST DL ,48H JZ LOOP MOV DH,1 HLT LOOP :MOV DL ,0HLT6.5編一程序段,完成符號函數(shù)(-128x127): 1 (x>0)y= 0 (x=0) -1 (x<0)假設(shè)x的值存放在DATAl中,y的值存放在DATA2中。 解答: START :MOV AL ,DATA1 AND
31、AL,AL JGE BIGR MOV AL,81H ;即將-1給AL MOV DATA2,AL HLT BIGR: JE EQUL ;結(jié)果為0,轉(zhuǎn)EQUL MOV AL,1 MOV DATA2,AL HLT EQUL: MOV AL,OMOV DATA2,AL HLT6.6設(shè)AX寄存器中有一個16位二進制數(shù),編一程序,統(tǒng)計AX中“l(fā)”的個數(shù),統(tǒng)計結(jié)果送CX中。解答: START : MOV CX ,0 ;CX清零也可用XOR CX,CX實現(xiàn) LOOP1: CLC ;CF清零SUB AX,0 ;此句也可用CMP AX,O替代 JZ STP SAL AX,1 ;此句也可用SHL AX,1替代 JN
32、C NOD INC CX NOD: JMP LOOP1 STP: HLT 67編一子程序利用XLAT指令把十六進制數(shù)轉(zhuǎn)換成ASCII碼。假設(shè)ASCII碼存放在以 DAT1為首地址的數(shù)據(jù)區(qū)中,對應(yīng)的16進制數(shù)放在以DAT2為首地址的數(shù)據(jù)區(qū)中,轉(zhuǎn)換結(jié)果送以DAT3為首地址的數(shù)據(jù)區(qū)中。解答: SUBPROC PROCSUBPROC :PUSH BX PUSH SIPUSH DIPUSH CXPUSH ALPUSH DS START:MOV BX,DATA1 ;將首地址DAT1送到BX中,作為表的首地址 MOV SI ,DAT2 MOV DI DAT3 MOV CX ,16 NEST:LODSB ;讀
33、字節(jié)串,從地址為SI的RAM讀16進制數(shù)到AX/AL XLAT ;用換碼指令XLAT將AX/AL中的16進制數(shù)轉(zhuǎn)換成;對應(yīng)的ASCII碼 STOSB ;寫字節(jié)串,從AX/AL寫到RAM,即將轉(zhuǎn)換成的ASCII碼送;到目標(biāo)地址DI處 LOOP NEST ;CX!=0,就轉(zhuǎn)向NEST,SI與DI都會自動增1 POP DS POP AL POP CX POP DI POP SI POP BX RETSUBPROC ENDP本題重點:(1)所有的串操作指令,如LODSB, STOSB等都用寄存器SI對源操作數(shù)進行間接尋址;都用寄存器DI為目的操作數(shù)進行間接尋址。(2)在每次循環(huán)后,地址指針SI和DI都
34、會受到修改;(3)XLAT指令的用法,見教材P118,用BX給定首地址,用AL/AX給定偏移地址,再用XLAT指令轉(zhuǎn)換。第7章習(xí)題7.2 假設(shè)學(xué)生某門課程的成績放在數(shù)據(jù)區(qū)中,請編一程序,統(tǒng)計該成績中小于60分的人數(shù),6090分的人數(shù),大于90分的人數(shù),并顯示在屏幕上。答:分析:假設(shè)學(xué)生成績放在以DATA1為首地址的數(shù)據(jù)區(qū)中。DATASEG SEGMENTDATA1 DB 100 DUP (?)STRING1 DB The student number of grade is bigger than 90STRING2 DB The student number of grade is betw
35、een 60 and 90STRING3 DB The student number of grade is less than 90 DATASEG ENDSSS1 SEGEMENT STACK DW 30 DUP(?)SS1 ENDSCODE SEGMENTASSUME CS: CODE, DS:DATASEG, SS:SS1START: MOV AX, DATASEG MOV DS, AXMOV SI, OFFSET DATA1MOV CL, 100(D); 將學(xué)生人數(shù)100賦給CLXOR BX, BXXOR AX, AXXOR DX, DXA1: MOV AX, SICMP AX, 9
36、0(D)JA L1CMP AX, 60(D)JAE L2INC CH ;用CH保存小于60的人數(shù)JUMP A2L1: INC BH ;用BH保存大于90的人數(shù)JUMP A2L1: INC BL ;用BL保存60到90的人數(shù)JUMP A2A2: INC SILOOP A1;-在屏幕上輸出各類人數(shù)MOV DX, OFFSET STRING1MOV AH, 9INT 21HMOV DL, CH MOV AH, 2INT 21H; -輸出60-90的學(xué)生人數(shù)MOV DX, OFFSET STRING2MOV AH, 9MOV DL, BLMOV AH, 2INT 21H;-輸出小于60的學(xué)生人數(shù)MOV
37、 DX, OFFSET STRING3MOV AH, 9MOV DL, BHMOV AH, 2INT 21H;-程序完成,返回操作系統(tǒng),結(jié)束MOV AH, 4CHINT 21HCODE ENDSEND START第八章習(xí)題8.1 編一初始化程序,使8255A的PC5端輸出一個負跳變。如果要求PC5端輸出一個負脈沖,則初始化程序又是什么情況?答:(1)設(shè)置PC5為負跳變(從1到0),即設(shè)置PC5引腳為0值,其控制字應(yīng)設(shè)置為:0000 1010(即0AH)。故其初始化程序為:MOV DX, 8255控制端口地址 MOV AL,0AH OUT DX, AL(2)負脈沖為(從0到-1),故其控制字為:0000 1011(即0BH)故其初始化程序為:MOV DX, 8255控制端口地址 MOV AL,0BH OUT DX, AL8.2 設(shè)8251A的控制和狀態(tài)端口地址為52H,數(shù)據(jù)輸入/輸出口地址為50H(輸出端口未用),輸入50個字符,將字符放在BUFFERR所指的內(nèi)存緩沖區(qū)中。請寫出這段程序。答:分析:(1)工作方式選擇本題沒有講清用同步或異步,故可自選,在此選擇異步傳送,波特率為16,偶校驗,停止位為2位;8個數(shù)據(jù)位。從而確定工作方式選擇字為:1111 1110,即為0FEH;(2)操作命令控制字選擇
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度股東合作投資新能源充電樁合同
- 二零二五年度石油鉆井電焊工勞動合同(鉆井平臺焊接作業(yè))
- 知識產(chǎn)權(quán)保護在科技領(lǐng)域的應(yīng)用與挑戰(zhàn)
- 2025至2030年中國空調(diào)冷氣機數(shù)據(jù)監(jiān)測研究報告
- 疫情后的心理健康支持體系構(gòu)建與實踐研究
- 外墻 貼磚合同范本
- 2025至2030年中國電磁閥手動推桿數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國電熔套管數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國電子鋁箔數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國珠光乳白石英玻璃數(shù)據(jù)監(jiān)測研究報告
- 人教版四年級數(shù)學(xué)下冊《圖形的運動(二)》試題(含答案)
- 2024-2025學(xué)年五年級(下)信息科技教學(xué)計劃
- 《老年人權(quán)益保障法》
- 2025年交管12123駕駛證學(xué)法減分題庫與參考答案
- 2025下半年上海事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 天津市和平區(qū)2024-2025學(xué)年高一(上)期末質(zhì)量調(diào)查物理試卷(含解析)
- 《呼吸》系列油畫創(chuàng)作中詩意建構(gòu)的研究與實踐
- 2025年年食堂工作總結(jié)和年工作計劃例文
- 客流統(tǒng)計系統(tǒng)施工方案
- 船舶制造設(shè)施安全生產(chǎn)培訓(xùn)
- 全國駕駛員考試(科目一)考試題庫下載1500道題(中英文對照版本)
評論
0/150
提交評論