




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
習題三
3.18086CPU有多少根數(shù)據(jù)線和地址線?它能尋址多少內(nèi)存單元和I/O端口?
8088CPU又有多少根數(shù)據(jù)線和地址線?為什么要設計8088CPL?
解:16,20,1M
8,20,為了方便與8位外部接口或設備相連。
3.28086CPU按功能可以分為哪兩大部分?它們各自的主要功能是什么?
解:8086微處理器從功能結構上可以劃分為執(zhí)行部件EU(ExecutionUnit)和總線接口部件BIU(Bus
InterfaceUnit)兩大部分.
總線接口部件具有下列功能:物理地址的形成、預取指令、指令隊列排隊、讀/寫操作數(shù)和總線控制。
指令執(zhí)行部件的功能是進行指令譯碼并執(zhí)行指令。
3.3什么是微處理器的并行操作功能?8086CPU是否具有并行操作功能?
在什么情況下8086的執(zhí)行單元EU才需要等待總線接口單元BIU提取指令?
解:并行操作是同時完成取指/操作數(shù)和執(zhí)行指令操作,有。
在遇到系統(tǒng)復位或執(zhí)行轉(zhuǎn)移指令等特殊情況,指令隊列被刷新時,EU才需要等待BIU進行取指操
作?;蛘咴贓U需要操作數(shù)而BIU正忙時,EU需要等待BIU執(zhí)行完當前的操作,再去取操作數(shù),等到
EU得到操作數(shù)以后,才能進行這條指令的執(zhí)行操作。
3.4邏輯地址和物理地址有何區(qū)別?段加偏移的基本含義是什么?
解:邏輯地址也稱相對地址或虛擬地址,它是目標程序中的地址。物理地址也稱絕對地址或?qū)嵉刂罚?/p>
它是物理存貯器的單元地址。物理地址=段基地址X16+偏移地址。
3.5基址指針BP和堆棧指針SP在使用中有何區(qū)別?
解:BP則是用來存放位于堆棧段中的一個數(shù)據(jù)區(qū)基址的偏移地址的,稱作基址指針寄存器。SP給出棧
頂?shù)钠频刂?,稱為堆棧指針寄存器。
3.G段地址和段起始地址是否相同?兩者是什么關系?
解:段地址為段的起始單元的物理地址(低4位一般為0)除以16的結果。
段起始地址為段的起始單元的物理地址,它必須能被16整除。
段地址=段起始地址/16
3.78086CPU一般使用哪個寄存器來保存計數(shù)值?
解:CX
3.8寄存器IP的用途是什么?它提供的是什么信息?
解:用于微處理器在程序中順序?qū)ぶ反a段中的下一條指令。
給出接著要執(zhí)行的指令在代碼段中的偏移。
3.9寄存器FLAGES的用途是什么?它提供的是什么信息?
解:反映處理器的狀態(tài)和運算結果的某些特征。
進位標志,零標志,符號標志,溢出標志,奇偶標志,輔助進位標志,方向標志,中斷允許標志,
追蹤標志
3.10對于數(shù)字0,對應的零標志是否為1?
解:不是,零標志是用于反映運算結果的。
3.11在實模式下,對于如下段寄存器內(nèi)容,寫出相應的段起始地址和結束地址:
(1)1000H(2)1234H
錯誤!未指定書簽。與接口技術
(3)E0001I(4)ABOOH
解:(1)lOOOOH^lFFFFH(2)12340H~2233FH
(3)EOOOOH~EFFFFH(4)ABOOOH^BAFFFH
3.12在實模式下,對于如下的CS:IP組合,寫出相應的存儲器地址:
(1)100011:200011(2)2400H:1A0011
(3)1A00H:EOOOH(4)3456H:AB001I
解:(D12000H(2)25A00H(3)28000H(4)3E060H
3.13什么是總線周期?微處理器在什么情況下才執(zhí)行總線周期?
解:把執(zhí)行外部總線對存儲器或I/。端口進行一次信息的輸入或輸出所需要的時間
稱為總線周期。
①在指令的執(zhí)行過程中,根據(jù)指令的需要,由執(zhí)行單元EU,請求BIU執(zhí)行一個總線周期。
②當指令隊列寄存器已經(jīng)空出兩個字節(jié),BIU必須填寫指令隊列的時候。
3.14一個基本的總線周期由幾個狀態(tài)組成?在什么情況下需要插入等待狀態(tài)?
解:至少由4個狀態(tài)組成,分別成為T1,T2,T3,T4.
在總線周期的T3和T4之間插入一些必要的等待狀態(tài)
3.15什么叫做非規(guī)則字?微處理器對非規(guī)則字的存取是如何訓行的?
解:其低位字節(jié)可從奇數(shù)地址開始,這種方式為非規(guī)則存放,這種存放的宇為非規(guī)則字
若存放的數(shù)據(jù)為8位,則將它們按順序進行存放;若存入的數(shù)據(jù)為一個16位的字,則將字的最高
字節(jié)存于高地址單元,低位字節(jié)存于低地址單元;若存放的數(shù)據(jù)為32位的雙字(這通常是指地址指針
數(shù)據(jù)),則將地址指針的偏移量(字)存于低地址的字單元中,將地址指針的段基址(字)存于高地址
的字單元中。對非規(guī)則字的存取需要兩個總線周期。
3.16什么是存儲器的分體結構?用什么信號來實現(xiàn)對兩個存儲體的選擇?
解:1M字節(jié)的存儲空間分成兩個512K字節(jié)的存儲體,一個是偶數(shù)地址存儲體,其數(shù)據(jù)線與系統(tǒng)總線高
8位相連,用BHE=O作為選通信號;?個是奇數(shù)地址存儲體。其數(shù)據(jù)總線與系統(tǒng)總線低8位相連,用Ao=O
作為選通信號
兩個存儲體采用字節(jié)交叉編址方式
3.17為什么8086微處理器要采用分體結構?而8088微處理器不采用分體結構?
解:8086是16位數(shù)據(jù)總線,故在組織1MB的存儲器時,被分成兩個512KB的存儲體,分別叫做高位庫
和低位庫。高位庫與8086數(shù)據(jù)總線中的D15?D8相連,庫中每個單元的地址均為奇數(shù);低位庫與數(shù)據(jù)總線
中的D7?D0相連,庫中每個單元的地址均為偶數(shù)。
8088因為外中數(shù)據(jù)總線為8位,因此,它所對應的1MB的存儲空間是一個不分高位庫和低位庫的單一
存儲體。
3.18堆棧的深度由哪個寄存器確定?為什么一個堆棧的深度最大為64KB?
解:堆棧的深度由SP值決定,由于16位的SP=FFFFH可最大尋址64KB,故深度最大為64KB。
3.19在實模式下,若SS=1000H,SP=2000H,AX=3000H,寫出執(zhí)行PUSHAX指令后SS、
SP和相應的堆棧中的內(nèi)容。
解:SS=1000HSP=1FFEH
(2000H)=30H(1FFFH)=OOH
3.20在實模式下,若SS=2200H,SP=1100H,寫出執(zhí)行POPAX指令后SS、SP的內(nèi)容。
解:SS=2200HSP=1102H
第2頁共53頁
3.21微處理器的WR和RD引腳信號各表示什么操作?
解:力■寫控制,有效時,表示CPU正在寫出數(shù)據(jù)給存儲器或I/O端口
方讀控制,有效時,表示CPU正在從存儲器或I/O端口讀入數(shù)據(jù)
3.22微處理器的ALE信號有什么作用?
解:地址鎖存允許有效時,表示復用引腳:AD7?ADO和A19/S6?A16/S3正在傳送地址信息
3.23微處理器的DT/R信號有什么作用?它在什么情況下被浮置為商阻狀態(tài)?
解:數(shù)據(jù)發(fā)送/接收,表明當前總線上數(shù)據(jù)的流向.
在DMA方式下,DT/R被浮置為高阻狀態(tài)
3.248086系統(tǒng)的最小模式和最大模式的區(qū)別是什么?是由什么引腳的信號決定的?
解:工作在最小模式時,是一個單處理器系統(tǒng),所有總線控制信號有CUP直接產(chǎn)生。
工作在最大模式時,系統(tǒng)中除了主CPU夕卜,還有其他協(xié)處理器,是一個多處理器系統(tǒng),這時CPU僅向
總線控制器8288提供狀態(tài)信號S2SIS0,,而由8288產(chǎn)生所有總線控制信號,以支持構成多處理器系統(tǒng)。
MN/MX
3.25微處理器中為什么要使用堆棧這樣的數(shù)據(jù)結構?
解:因為硬件和軟件堆棧已經(jīng)用于支持4個主要的計算領域:表達式計算,子程序返回地址存儲,動
態(tài)分配局部變量存儲器和子程序參數(shù)傳遞。
習題四
4.1簡述存儲介質(zhì)和半導體存儲器的基本分類情況。
解:存儲器按存儲介質(zhì)分,有半導體存儲器、磁存儲器和光存儲器。
半導體存儲器按工作方式分,有隨機存取存儲器(RAM)和只讀存儲器(ROM);RAM又可分為雙極型半
導體和單極MOS型;MOS型RAM還可以分為靜態(tài)和動態(tài)的。ROM可分為掩膜ROM和可編程ROM,可編程ROM
又分為可編程PROM,可擦除可編程EPROM和電可擦除可編程EEPROMo
4.2簡述靜態(tài)RAM與動態(tài)RAM的區(qū)別與各自的優(yōu)缺點。
解:靜態(tài)RAM是靠雙穩(wěn)態(tài)觸發(fā)器來記憶信息的;動態(tài)RAM是靠MOS電路中的柵極電容來記憶信息的。動態(tài)
RAM需要設置刷新電路。但動態(tài)RAM比靜態(tài)RAM集成度高、功耗低,從而成本也低,適于作大容量存儲器。
所以主內(nèi)存通常采用動態(tài)RAM,而高速緩沖存儲器(Cache)則使用靜態(tài)RAM。
4.3簡述掩模ROM、PROMsEPROM和EEPROM的主要特點和應用場合。
解:MASKROM價格便宜,但程序在出廠時已經(jīng)固化,適合程序固定不變的應用場合。
OTPROM的價格適中,同時又擁有--次性可編程能力,適合既要求一定靈活性,又要求低成本的應用
場合,尤其是功能不斷翻新、需要迅速量產(chǎn)的電子產(chǎn)品。
EPROM的寫入要用專用的編程器,并且往芯片中寫內(nèi)容時必須要加一定的編程電壓。特點是具有可擦
除功能,擦除后即可進行再編程,但是缺點是擦除需要使用紫外線照射一定的時間。
EEPROM的擦除不需要借助于其它設備,它是以電信號來修改其內(nèi)容的,而且是以Byte為最小修改單
位,不必將資料全部洗掉才能寫入,徹底擺脫了EPROMEraser和編程器的束縛。它的最大優(yōu)點是可直接用
電信號擦除,也可用電信號寫入。
4.4當前新型存儲器都有哪些?今后的發(fā)展趨勢如何?
4.10某RAM芯片的引腳中有12根地址線,8根數(shù)據(jù)I/O線,該存儲器芯片的容量為多大?若該芯片在系
統(tǒng)中的起始地址為1000H,其結束地址是多少?
解:4K*8,5095H
4.11某CPU有16根地址線(A0?A15),試分析下圖中片選信號百T、言■所指定的存儲器地址范圍。
解:CST:0000H-6FFFH,或者1000H-7FFFH,或者8000H-EFFFH
CS2-:0000H-6FFFH
4.12試為8088CPU設廿192KX8位存儲器系統(tǒng)v共中程序區(qū)為64Kx8位,置于CPU尋址空間最高端,采
用27256(32KX8位);數(shù)據(jù)區(qū)為128K義8位,采用62256(32KX8位),置于尋址空間最低端。寫出地址分
配關系,畫出所設計的電路圖。
解:
宙H
tt?
n
r
T.
Y7
RAM:00000-07FFFHROM:20000-27FFFH
08000-0FFFFH28000-2FFFFH
10000-17FFFH
18000-1FFFFH
習題五
5.1分別指出下列指令中源操作數(shù)和H的操作數(shù)的尋址方式。
(1)MOVBX,1000H(2)MOVBL,[BX]
(3)MOVBUF[BX],AX<4)MOVBX,[BP][SI]
錯誤!未指定書簽。與接口技術
(5)MOV[DI],DL(6)MOVAX,RESULT
解:(1)源:立即數(shù)尋址;目的:寄存器尋址
(2)源:寄存器間接尋址;目的:寄存器尋址
(3)源:寄存器尋址;目的:寄存器相對尋址
(4)源:基址變址尋址;目的:寄存器尋址
(5)源:寄存器尋址;目的:寄存器間接尋址
(6)源:直接尋址;目的:寄存器尋址
(7)源:寄存器尋址:目的:直接尋址;
(8)源:相對基址變址尋址;目的:寄存器尋址
5.2設已知:(BX)=200011,(SI)=120H,(DS)=1200H,(SS)=20011,(BP)=300011,符號地址VAREG000H。
試問答在以下各種尋址方式下操作數(shù)存放于何處,如果是在存儲單元中,則計算單元的物理地址是什么?
(1)使用BX的寄存器尋址(例如:MOVAX,BX)
(2)立即數(shù)尋址(例如:MOVAX,1234)
(3)使用BX的寄存器相對尋址(例如:MOVAX,[BX])
(4)直接尋址(例如:MOVAX,[1234])
(5)使用SI的寄存器間接尋址(例如:MOVAX,[SI])
(6)使用BP和SI的基址變址尋址(例如:MOVAX,[BP][SI])
(7)使用BX和SI的相對基址變址尋址(例如:MOVAX,[BX][S1])
解:(1)操作數(shù)在BX寄存器中;
(2)操作數(shù)在指令中;
(3)操作數(shù)在存儲單元中,物理地址=15000出
(4)操作數(shù)在存儲單元中,物理地址:13000H;
(5)操作數(shù)在存儲單元中,物理地址=12120H;
(6)操作數(shù)在存儲單元中,物理地址=05120H;
(7)操作數(shù)在存儲單元中,物理地址=15120H。
5.33aW(DS)=2OOOH,(BX)=100H,(SI)=2H,(20100H)=12Hf(20101H)=34H,(20102H)=56H,(20103H)
=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H),(21203H)=65Ho試指出下列各條指令單獨執(zhí)行
后累加器中的內(nèi)容是什么?
(1)MOVAX,1200H(2)MOVAX,BX
(3)MOVAX,[1200H](4)MOVAX,[BX]
(5)MOVAX,1100U[BX](6)MOVAX,[BX[SI]
(7)MOVAX,1100H[BX][SI](8)MOVAL,[BX]
解:(1)(AX)=1200H;(2)(AX)=100H;(3)(AX)=4C2AH;(4)(AX)=3412H
(5)(AX)=4C2AH;(6)(AX)=7856H;(7)(AX)=65B7H;(8)(AX)=XX12H
5.4指出下列指令的錯誤是什么?
(1)MOVBL,AX(2)MOV[BX],[BP+SI]
(3)MOVCS,AX(4)MOVDS,1000H
(5)MOVBX,[SI][DI](6)MOV[2000H],10
解:(1)類型屬性不匹配;(2)兩操作數(shù)都是存儲單元;(3)把CS用作目的操作數(shù)
(4)立即數(shù)送段寄存器;(5)源操作數(shù)中兩個均為變址寄存器;(6)類型屬性不明確
5.5設當前數(shù)據(jù)段寄存器的內(nèi)容為1B00H,在數(shù)據(jù)段偏移地址為2000H開始的單元內(nèi),含有一個內(nèi)容為
0FF10H和8000H的指針,它們是一個16位變量的偏移地址和段池址,試寫出把該變量裝入AX的指令序歹U,
并畫出內(nèi)存圖。
解:LDSBX,[2000H]
MOVAX,[BX]
第6頁共53頁
5.6設當前(SP)=010011,(AX)=200011,(BX)=0B10011,試回答:
執(zhí)行指令PUSHAX后,(SP)為多少?畫出堆棧示意圖。
再執(zhí)行指令PUSHBX和POPAX后,(SP)為多少?畫出堆棧示意圖。
解:(1)執(zhí)行PUSHAX后:(SP)=OOFEH
(2)執(zhí)行PUSHBX和POPAX后:(SP)=OOFEH
5.7要求從85號端口讀入一個字節(jié)數(shù)據(jù),然后到數(shù)據(jù)段首地址為1000H的表格中換取相應的數(shù)據(jù)碼,再
將該數(shù)據(jù)輸出至3000號端口,試編寫指令序列。
解:INAL,85
MOVBX,1000H
XLAT
MOVDX,3000
OUTDX,AL
5.8試編寫將某十進制數(shù)字轉(zhuǎn)換成七段代碼的程序段。設該十進制數(shù)字存儲在名為BCDKEY的字節(jié)變量中,
要求將轉(zhuǎn)換的結果送入RESULT變量(十進制數(shù)字與相應七段代碼的對應表如下)。
十進制數(shù)^0123456789
七段代碼3FH06H5BH4FH66H6DH7DH07H7FH6FH
解:MOVAL,BCDKEY
MOBBX,DISPLAY
XLAT
MOVRESULT,AL
5.9根據(jù)以下要求編寫相應的指令:
(1)將AX寄存器和BX寄存器的內(nèi)容相加,結果存入BX寄存器。
(2)用增量指令使采用BX寄存器間接尋址的單元中的字節(jié)內(nèi)容加lo
(3)用BX寄存器利位移量303的寄存器相對尋址方式把存儲器中的一個字和(CX)相加,結果送回該
存儲單元中。
(4)用寄存器BX和SI的基址變址尋址方式,把存儲器中的?個字節(jié)與AH寄存器的內(nèi)容相加,并保存在
AH中。
(5)采用合適的指令,將1000H單元中的字與1200H單元中的字相加,結果存入1000H單元。
解:(1)ADDBX,AX
(2)INCBYTEPTR[BX]
(3)ADD[BX+300H],CX
(4)ADDAH,[BX][SI]
(5)MOVBX,1000H
MOVAX,[120OH]
ADD[BX],AX
3.10設以下表達式中的變量名均為16位用符號數(shù)所在單元的地址,編寫指令序列,完成下列運算(出發(fā)
運算的余數(shù)舍去):
(WXY)/(A+70)-X
(A-BXC)/(X-Y)-Z
解:(1)MOVAX,W
IMULY
MOVBX,A
ADDBX,70
IDIVBX
MOVX,AX
(2)MOVAX,B
錯誤!未指定書簽。與接口技術
IMULC
MOVBX,AX
MOVCX,DX
MOVAX,A
CWD
SUBAX,BX
SBBDX,CX
MOVBX,X
SUBBX,Y
IDIVBX
MOVZ,AX
5.11變量VARA1和變量VARA2已定義如下:
VARA1DW23A8H,028011
VARA2DW0A210H,1248H
(1)將VARA1和VARA2單元中的對應字數(shù)據(jù)相加,結果存入VARA2指示的單元中
(2)將VARA1單元中的兩個字作為雙字和VARA2單元中的兩個字組成的雙字相加,結果存放在
VRAR2單元中,雙字的存放格式都是低位字在低地址單元、高位字在高地址單元中。
解:(1)MOVAX,VARA1
ADDVARA2,AX
(2)MUVAX,VAKA1
ADDVARA2,AX
MOVAX,VARA1+2
ADCVARA2+2,AX
5.12寫出完成以下組合式BCD碼計算的指令序列:
BCD1+BCD2-BCD3-*DX
解:MOVAL,BCD1
ADDAL,BCD2
DAA
MOVDL,AL
MOVAL,BCD1+1
ADCAL,BCD2+1
DAA
MOVDH,AL
MOVAL,DL
SUBAL,BCD3
DAS
MOVDL,AL
MOVAL,DH
SBBAL,BCD3+1
DAS
MOVDH,AL
5.13指出下列各條指令是否正確,如不正確,則指出其錯在何處。
(1)MOVCS,100011(2)ADCBX,25H
(3)ADD[BX],20(4)MULAX,BL
(5)PUSHCS(6)MOVDX,2000H
(7)ADD[BX+ST],30H(8)POPCS
(9)INC[SI](10)MOV[BX],[SI]
解:(1)錯誤(2)正確(3)錯誤(4)錯誤(5)正確
第8頁共53頁
(6)正確(7)錯誤(8)錯誤(9)錯誤(10)錯誤
5.14用邏輯運算指令分別寫出完成下列要求的指令:
將BX寄存器中的高4位清零。
將CX寄存器中的第0、1兩位置1。
將AL寄存器的中間4位變反。
測試AX的最高位和次高位是否為0o
解:(1)MOVAX,OFFFH
ANDBX,AX
(2)MOVAX,3
ORCX,AX
(3)MOVBL,3CH
XORAL,BL
(4)MOVBX,3FFFH
TESTAX,BX
5.15設(BX)=0A6H,(CL)=3,CF為1,試指出下列各條指令單獨執(zhí)行后BX中的值。
(1)SARBX,1(2)SHRBX,CL
(3)SHLBL,CL(4)SALBL,1
(5)RORBX,CL(6)RCLBX,CL
(7)ROLBH,1(8)RCRBL,1
解:(1)(BX)=0053H(2)(BX)=0014H(3)(BX)=0030H(4)(BX)=004CH
(5)(BX)=0C014H(6)(BX)=0534H(7)(BX)=0A6H(8)(BX)=00D3H
5.16已知有一32位的無符號數(shù)在(DX,AX)中,試編寫指令序列,將該32位數(shù)左移4位,將低4位用
0填補;將移出的高4位存入CH的低4位中。
解:MOVCL,4
MOVCH,DH
SHRCH,CL
SHLDX,CL
MOVBL,AH
SHRBL,CL
SHLAX,CL
ORDL,BL
5.17利用移位指令、傳送指令和加法指令完成乘法運算(AX)X10o
解:SALAX,1
MOVBX,AX
MOVCL,2
SALAX,CL
ADDAX,BX
5.18試分別指出在下列3種條件下執(zhí)行指令SUBAX,BX時,對標志位OF、CF、SF、ZF影響的情況:
(1)(AX)=14C6H,(BX)=80DCH
(2)(AX)=42C8H,(BX)=608DH
(3)(AX)=0D023H,(BX)=9FD0H
解:⑴OF=1,CF=1,SF=1,ZF=O
(2)0F=0,CF=1,SF=1,ZF=O
(3)0F=0,CF=O,SF=O,ZF=O
錯誤!未指定書簽。與接口技術
5.19在8086/8088指令系統(tǒng)中,哪些指令可以加重且前綴?重復前綴共有哪幾種形式?它們的操作功能
是什么?
解:可加重復前綴的指令有:MOVS、STOS、SCAS、LODS、CMPS;
重復前綴的形式有:REP、REPE/REPZ、REPNE/REPNZ
5.20在一個名為STRING、長度為100字節(jié)的字符串中查找是否含有字符“$”,如果有則將第一次發(fā)現(xiàn)的
“$”字符所在單元的偏移地址送入BX寄存器中;如果未曾找到,則將0FFFFH送入BX寄存器中。
解:CLD
MOVAL,'$'
LEADLSTRING
MOVCX,100
REPNESCASB
JNEZER
DECDI
MOVBX,DI
JMPSTOP
ZER:MOVBX,OFFFFH
STOP:HLT
5.21將2000H段中名為BUFST的緩沖區(qū)中長度為200個字節(jié)的數(shù)據(jù)串移到3000H段中名為DSTST的緩沖
區(qū)中。編寫兩種采用不同指令實現(xiàn)該功能的程序段。
解:⑴MOVAX,2000H
MOVDS,AX
MOVAX,3000H
MOVES,AX
MOVCX,200
CLD
LEASI,BUFST
LEADI,DSTST
REPMOVSB
HLT
(2)MOVAX,2000H
MOVDS,AX
MOVAX,3000H
MOVES,AX
MOVCX,200
MOVSI,OFFSETBIFST
MOVDI,OFFSETDSTST
AGN:MOVAL,[SI]
MOVES:[DI],AL
INCSI
INCDI
LOOPAGN
HLT
5.22將1000段中名為DATSTR的字符串,向高地址方向平移20個字節(jié),字符串的長度為45字節(jié)。
解:STD
MOVAX,1000H
MOVDS,AX
第10頁共53頁
MOVES,AX
LEASI,DATSTR+44
LEADI,DATSTR+64
MOVCX,45
REPMOVSB
HLT
5.23用其它指令完成與下列指令同樣的功能
(1)REPMOVSB(2)REPECMPSW
(3)REPSTOSB(4)REPNESCASB
解:(1)AGAIN:MOVAL,[SI](2)AGAIN:MOVAL,[SI]
MOVES:[DI],ALCMPAL,ES:[DI]
INCSIINCSI
INCDIINCDI
LOOPAGAINLOOPEAGAIN
(3)AGAIN:MOVES:[DI],AL(4)AGAIN:CMPAL,[DI]
INCDIINCDI
LOOPAGAINLOOPNEAGAIN
5.24有100個學生的計算機課程成績存放在COMPLIT緩沖區(qū)中,編寫指令序列統(tǒng)計85分以上、60?85分、
60分以下各有多少人,并把統(tǒng)計結果存入ORDER開始的三個字節(jié)單元中。
解:LEASI,COMPUT
MOVCX,100
MOVBL,10
MOVBH,0
MOVDX,0
AGAIN:MOVAL,[SI]
CBW
IDIVBL
CMPAL,9
JGERANGE1
CMPAL,8
JEGE85
CMPAL,6
JGERANGE2
INCBH
JMPNEXT
GE85:CMPAH,5
JGERANGE1
RANGE2:INCDL
JMPNEXT
RANGE1:INCDH
NEXT:INCSI
LOOPAGAIN
MOVORDER,DH
MOVORDER+1,DL
MOVORDER+2,BH
HLT
錯誤!未指定書簽。與接口技術
5.25在內(nèi)存數(shù)據(jù)區(qū)從4000H開始存放著由30個字符組成的字符串,編寫指令序列,查找井統(tǒng)計率中空格
符的個數(shù),并將統(tǒng)計結果存入4020H單元中。
解:MOVSI,4000H
MOVCX,30
SUBBL,BL
MOVAL,20H
AGAIN:CMPAL,[SI]
JNZNEXT
INCBL
NE燈:INCSI
LOOPAGAIN
MOVSI,4020H
MOV[SI],BL
HLT
5.26編寫一指令序列,統(tǒng)計寄存器BX中內(nèi)容含“1”的個數(shù),將統(tǒng)計結果送入CX寄存器中c
解:SUBCX,CX
G00N:CMPBX,0
JZSTOP
SHRBX,1
JNCJUMP
INCCX
JUMP:JMPGOON
STOP:HLT
5.27試分析下列程序段:
ADDAX,BX
JNOLI
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPL5
如果AX和BX的內(nèi)容給定如下:
AXBX
(1)147BH80DCH
(2)0B568H54B7H
(3)4C28H608DH
(4)0D023H9FD0H
(5)94B7H0B568H
問在該5種條件下,以上程序執(zhí)行完后程序?qū)⑥D(zhuǎn)向哪里?
解:⑴L1;(2)L1;(3)L2;(4)L5;(5)L5
5.28設在內(nèi)存數(shù)據(jù)段中有一個由28個字節(jié)數(shù)據(jù)組成的數(shù)組,數(shù)組的起始地址為2000H,試編寫程序段,
將其分成正數(shù)組和負數(shù)組,正數(shù)組存放于2020H開始的單元中;負數(shù)組存放于2040H開始的單元中。
解:MOVBX,2000H
MOVCX,1CH
MOVSI,2020H
MOVDI,2040H
L00P1:MOVAL,[BX]
第12頁共53頁
SUBAL,0
JSNEGAT
MOV[SI],AL
INCSI
JMPNEXT
NEGAT:MOV[DI],AL
INCDI
NEXT:LOOPL00P1
HLT
5.29在首地址為VALU的字數(shù)組中,存放有10個無符號數(shù),編與指令序列,求出它們的平均值并存放于
BL寄存器中(只取整數(shù))。再統(tǒng)計出數(shù)組中有多少個小于平均值的數(shù),將結果存于DI.寄存器中。
解:MOVSI,0
MOVDX,0
MOVCX,DX
AVERAGE:MOVAL,VALU[SI]
CBW
ADDDX,AX
INCSI
LOOPAVERAGE
MOVAX,DX
MOVBL,10
DIVBL
MOVBL,AL
MOVSI,0
MOVDX,0
MOVCX,0
COMPARE:MOVAL,VALU[SI]
CMPAL,BL
JAEGOON
INCDL
GOON:INCSI
LOOPCOMPARE
HLT
5.30有20個ASCII碼表示的分離式BCD碼存放在緩沖區(qū)UNPBCD中,編寫指令序列將它們轉(zhuǎn)換成組合式
BCD碼,即把兩個相鄰字節(jié)單元的數(shù)碼合并成一個字節(jié)單元,高地址單元存放在高4位,低地址單元存放在
低4位,轉(zhuǎn)換結果存放于PABCD緩沖區(qū)中.
解:MOVCX,14H
LEASI,UNPBCD
LEADI,PABCD
CONVERT:PUSHex
MOVAL,[SI]
SUBAL,30H
MOVBL,AL
MOVAL,[SI+1]
SUBAL,30H
MOVCL,4
SHLAL,CL
ADDAL,DL
錯誤!未指定書簽。與接口技術
MOV[DI],AL
POPCX
ADDSI,2
INCDI
LOOPCONVERT
HLT
習題六
6.1請指出變量與標號都有哪些屬性?它們的主要區(qū)別是什么?
解:變量的屬性有:段屬性,偏移屬性,類型屬性。
標號的屬性有:段屬性,偏移屬性,距離屬性。
變量和標號都是一種符號地址。變量的內(nèi)容是代表存放在某些存儲單元中的數(shù)據(jù),變量名就代表這些
單元的起始地址;標號是代表一條指令目標代碼的起始地址。
6.2在一個數(shù)據(jù)段中,試用偽指令定義下列數(shù)據(jù)或字符變量,并畫出內(nèi)存分配示意圖。
⑴為十進制數(shù)58定義字節(jié)變量DEDAT
⑵為二進制數(shù)U011010B定義字節(jié)變量BINDAT
⑶為十六進制數(shù)B7A21I定義字變量11EXDAT
⑷定義6個0的字變量
⑸為字符串'Ihaveapen'定義字節(jié)變量STRING
解:(1)DEDATDB58
(2)INDATDB11011010B
(3)HEXDB0B7A2H
(4)DW6DUP(O)
(5)STRINGDB'Ihaveapen'
6.3已知在某數(shù)據(jù)段中有如下變量定義:
VRWDDW256DUP(?)
現(xiàn)要求對這些變量單元既能進行字操作,同時在另一種場合乂能進行字節(jié)操作,請問應該如何解決?
解:用LABEL偽指令進行字節(jié)定義:
VRBDLABELBYTE
VRWDDW256(?)
6.4已知有如下賦值語句:
ALPHAEQU100
BETAEQf25
GAMMAEQU2
試指出下列表達式的值為多少?
⑴ALPHA*100(2)ALPHAMODGAMMA+BETA
⑶(ALPHA+2)*BETA-2(4)(BETA/3)MOD5
⑸(ALPHA+3)*(BETAMODGAMMA)(6)ALPHAGEGAMMA
⑺BETAAND7(8)GAMMAOR3
第14頁共53頁
解:⑴10000(2)26(3)2446(4)3
(5)309(6)0FFFFH(7)08H(8)0BH
6.5分析如下程序,畫出堆棧最滿時各單元的地址及內(nèi)容。
STASEGSEGMENTAT1000H
DW200DUP(?)
TCPLABELWORD
STASEGENDS
CCDSEGSEGMENT
ASSUMECS:CODSEG,SS:STASEG
START:MOVAX,STASEG
MOVSS,AX
MOVSP,OFFSETTOP
PUSHDS
SUBAX,AX
PUSHAX
PUSHBX
PUSHF
HOPF
POPBX
POPAX
CCDSEGENDS
ENDSTART
解:(1)10000(2)26(3)2446(4)3
6.6編寫一完整的匯編語言源程序,在數(shù)據(jù)段中定義一雙字變量VARLD,再在附加段中也定義一雙字變量
V.ARLE,然后將這兩個雙字內(nèi)容相加,結果存放于數(shù)據(jù)段的RESU變量中。
解:DATASEGMENT
WVLDLABELWORD
VARLDDD58A027B4H
RESUDW?,?
DATAENDS
EXTRSEGMENT
WVLELABELWORD
VARLEDD0F4C2380H
EXTRENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA,ES:EXTR
START:MOVAX,DATA
MOVDS,AX
MOVAX,EXTR
MOVES,AX
MOVAX,WVLD
ADDAX,ES:WVLE
MOVRESU,AX
MOVAX,WVLD+2
ADCAX,ES:WVLE+2
MOVRESU+2,AX
錯誤!未指定書簽。與接口技術
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6.7循環(huán)程序一般由哪幾部分構成?各部分的功能是什么?
解:(D循環(huán)初始化部分。主要是設定循環(huán)的初始狀態(tài),為循環(huán)作準備。如設置循環(huán)最大次數(shù),循環(huán)過
程中相關寄存器所需的初始值等等。
(2)循環(huán)工作部分。這是循環(huán)程序的主體部分,它完成該循環(huán)體所要實現(xiàn)的主要功能,如數(shù)據(jù)的傳送、
運算等。
(3)循環(huán)參數(shù)調(diào)整部分。主要功能是用于修改某些數(shù)據(jù),以保證每次循環(huán)時參與運行的某些信息能發(fā)
生有規(guī)律的變化,使完成的功能不完全重復。
(4)循環(huán)控制部分。循環(huán)控制部分是循環(huán)程序設計的關鍵,它根據(jù)循環(huán)控制條件來控制循環(huán)的運行和
結束,該控制功能由循環(huán)控制指令完成。
6.8設有一匯編語言源程序如下:
DATSEGSEGMENT
CONDATDB3EH,0l'7JI,68H,9CH,7FH
ORG1000H
SUMDW?
DATSEGENDS
PROSEGSEGMENT
ASSUMECS:PROSEG,DS:DATSEG
MAINPROCFAR
START:PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATSEG
MOVDS,AX
LEABX,CONDAT
MOVCX,5
XORDX,DX
NMP:MOVAL,[BX]
ANDAL,AL
JSNEXT
ADDDL,AL
JNZNEXT
INCDH
NEXT:INCBX
LOOPNMP
LEABX,SUM
MOV[BX],DX
RET
MAINENDP
PROSEGENDS
ENDSTART
簡要說明此程序的功能,指出程序運行后四個通用寄存器AX、BX、CX、DX中的內(nèi)容各是什么?程序運行的
結果是什么?保存在什么地方?
解:程序功能是,統(tǒng)計CONDAT數(shù)據(jù)區(qū)的9個字節(jié),將正數(shù)之和送入1000H單元;將前幾個為0的數(shù)的個
數(shù)送入1001H單元。
第16頁共53頁
程序執(zhí)行結果:(AX)=0010H(BX)=1000H(CX)=O(DX)=023EHo
正數(shù)之和等于3EH保存于1000H單元中;數(shù)組前面0的個數(shù)是2,保存于1001H單元中。
6.9設內(nèi)存自1000H開始的存儲區(qū)中,存放有20個帶符號數(shù),試編一程序段,找出其中最小的數(shù),存于數(shù)
據(jù)區(qū)2000H中。
解
AX,1000H
DS,AX
BX,BUFF
CX,[BX]
AX,0
s
CAN?BX,2
DX,[BX]
DX,AX
ENEXT
JGAX,DX
?XCHG
NEXT?LOOV
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024成都職業(yè)技術學院輔導員招聘筆試真題
- 2025年新能源環(huán)衛(wèi)裝備合作協(xié)議書
- 奢侈品鑒定師筆試試題及答案
- 2025年穩(wěn)相微波射頻同軸電纜項目發(fā)展計劃
- 第2課時 因數(shù)中間或末尾有0的筆算乘法 教案 人教版數(shù)學四年級上冊
- 2025年遼寧省文化和旅游廳下屬事業(yè)單位招聘考試筆試試題【答案】
- 2024年麗水市蓮都區(qū)融媒體中心招聘真題
- 消費情緒對生鮮農(nóng)產(chǎn)品消費者購買行為的影響
- 項目工程建設業(yè)務循環(huán)調(diào)查表范本
- 消防設施維護合同
- 記憶原理及方法課件
- 頸脊髓損傷 -課件
- 老年俱樂部建設項目可行性研究報告
- 國外不規(guī)則氣象報文課件
- 【線性代數(shù)自考練習題】山東醫(yī)學高等??茖W校專升本真題匯總(附答案解析)
- 杭州網(wǎng)約車從業(yè)資格考試題庫與答案
- 格力好易控集中控制器使用說明
- 巨光Y型空氣消毒器
- 食品安全管理制度(個體戶、一般企業(yè))
- 工商銀行招聘考試全新試題(完整版)(答案)
- 某x司建設項目總體部署編制管理規(guī)定
評論
0/150
提交評論