2025年蘭州理工大學微機原理上機實踐與答案解析_第1頁
2025年蘭州理工大學微機原理上機實踐與答案解析_第2頁
2025年蘭州理工大學微機原理上機實踐與答案解析_第3頁
2025年蘭州理工大學微機原理上機實踐與答案解析_第4頁
2025年蘭州理工大學微機原理上機實踐與答案解析_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第一章微型計算機概論

1.1、答:微型計算機系統(tǒng)包括硬件系統(tǒng)和軟件系統(tǒng)兩大部分。硬件系統(tǒng)包括:

微型計算機、外部設備、電源及其他輔助設備。軟件系統(tǒng)包括:系統(tǒng)軟件和應用軟

件。

微型計算機也稱為主機,主機包括:微處理器、存儲器、輸入/輸出接口

(Input/Output),微處理器通過系統(tǒng)總線和存儲器、輸入/輸出接口進行連接。

微處理器(MicroprocessorUnit)簡稱為MPU(或者稱為MP),它是一種中央

控制器(CentralProcessingUnit),簡稱CPU。它是微型計算機的關鍵部件,它將運

算器、控制器、寄存器通過內(nèi)部總線連接在一起,并集成在一種獨立芯片上。

1.2、答:單片機是將CPU、ROM、RAM以及I/O接口電路以及內(nèi)部系統(tǒng)總線

等所有集中在一塊大規(guī)模集成電路芯片上,就構成了單片機。

單板機是將微處理器芯片、存儲器芯片、I/O接口芯片及少許的輸入輸出設備

(鍵盤,數(shù)碼顯示屏)安裝在一塊印制板上構成一臺微型計算機。

由多塊印制板構成的微機稱為多板機。

1.3、完畢下列轉(zhuǎn)換(保留4位小數(shù))

(21.32))0=(10101.0101)2=(25.2436)8=(15.51EB),6

50.38D=110010.011()B=62.3024Q=32.6147H

1.4,完畢下列計算

已知X=-63,Y=59

則[X]M(=BFH(lOUlillB),[X]S=C()H(B),[X]^=C1H(11()000()1B)

[Y]原=3BH(0011I011B),[Y]&=3BH(001I10IIB),[Y]#=3BH(00III0I1B)

[X4Yl?h=0FCH(11111100B),[XY]fh=86H(10000110B)o

[X]補+[Y]補=0FCH(llllll(X)B),[X]樸一[g]樸=86H(1000011OB)o

1.5、答:浮點數(shù)是指小數(shù)點在數(shù)值中的位置不是固定不變,實際位置將隨階碼

而浮動,用這種措施表達的數(shù),稱為浮點數(shù)。

定點數(shù)是指小數(shù)點在數(shù)值中的位置固定不變。

1.6、答:壓縮BCD碼是4位二進制表達一位十進制數(shù)而非壓縮BCD碼是8位

二進制表達一位十進制數(shù)。

1.7、寫出下列數(shù)值的壓縮的BDC碼、非壓縮的BDC碼、ASCII碼值。

(改為15,29)

15=[15H]EiffiBCDW=[0105H]非壓嫡BCD碼=[3135H]ASCTI科

29=[29H]j冏BCD碼:[0209H]善壓編BCDW=[3239H]ASCII瑪

第二章8086/8088微處理器

2.1答:從功能上講由兩部分構成總線接口單元BIU和執(zhí)行單元EU構成。

總線接口單元(BIU)是微處理器內(nèi)部與存儲器和I/O接口傳送信息的通道,總線

接口單元負責從內(nèi)存中將指令送到指令隊列中;負責把數(shù)據(jù)從內(nèi)存或I/O接口送到

執(zhí)行單元(EU);負責將執(zhí)行單元的運行成果送到內(nèi)存或I/O接口。

EU的功能是負責譯碼和執(zhí)行指令。

2.2答:指令隊列(Queue)寄存預取的指令,采用預取指令的措施將減少微處理

器的等待時間,提高運行效率。8086CPU中指令隊列有6個;8088CPU中指令隊

列有只有4個。

2.3答:8()86/8088CPU中有16個16位的寄存器。4個段地址寄存器是代碼段

寄存器CS;數(shù)據(jù)段寄存器DS;堆棧段寄存器SS和擴展段寄存器ESo它們是用

來寄存每一種段的首地址(段基地址)。一種指令指針寄存器IP是用于寄存要執(zhí)行

的指令的偏移地址,它不能作為一般寄存器使用。一種標志寄存器(又稱為程序狀

態(tài)寄存器)用于反應指令執(zhí)行成果或控制指令執(zhí)行形式。)有8個通用寄存器,通用

寄存器分為數(shù)據(jù)寄存器與指針和變址寄存器兩組。數(shù)據(jù)寄存器包括AX(累加器)、

BX(基址寄存器)、CX(計數(shù)器)和DX(數(shù)據(jù)寄存器),一般用來寄存16位數(shù)據(jù),

故稱為數(shù)據(jù)寄存器。其中的每一種又可根據(jù)需要將高8位和低8位提成獨立的兩個

8位寄存器來使用,即AH、BH、CH、DH和AL、BL、CL、DL兩組,用于寄存8

位數(shù)據(jù),它們均可獨立尋址、獨立使用。數(shù)據(jù)寄存器用來寄存計算的成果和操作數(shù),

也可以寄存地址。

指針寄存器包括堆棧指針寄存器SP、基址指針寄存器BP一般用來寄存地址的

偏移量和用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù)

變址寄存器包括原變址寄存器SI和目的變址寄存器DI,一般用來寄存地址的

偏移量為存儲器尋址時提供地址。

2.4答:標志寄存器又稱為程序狀態(tài)寄存器,是一種16位的寄存器,標志寄

存器設置了9個標志位。這9個標志位按功能分可以分為兩類:一類為狀態(tài)標志,

狀態(tài)標志表達執(zhí)行某種操作后,ALU所處的狀態(tài)特性,這些狀態(tài)標志會影響背面的

詳細操作。狀態(tài)標志有6個:CF、AF、SF、PF、OF和ZF。另一類為控制標志,

用來控制CPU操作,反應存儲器地址變化的方向、與否容許中斷及在執(zhí)行程序時與

否進行單步中斷??刂茦酥居?個:DF、IF和TF控制標志是人為設置的,每個控

制標志都對某種特定的功能起控制作用。

2.5答:8086與8088有3點不一樣之處;1.8086有16條數(shù)據(jù)線而8088只有

8條數(shù)據(jù)線,2.8086麗/MX而8088MN/拓乙3.8O86M/75而8088而、

2.6答:堆棧是在內(nèi)存中開辟的一種特定的區(qū)域,用以寄存CPU寄存器或存儲

器中臨時不用的數(shù)據(jù)和有用的信息。在數(shù)據(jù)段和附加段寄存數(shù)據(jù)時,一般是從低地

址開始向高地址寄存數(shù)據(jù),而用PUSH指令向堆棧中寄存數(shù)據(jù)時總是從高地址開始

逐漸向低地址方向增長。堆棧指令遵照“先進后出’「后進先出”的原則,但凡用PUSH

指令最終推入堆棧的數(shù)據(jù),用POP指令彈出時最先出棧。在操作時是以字為單位。

2.7答:8086/8088CPU各有20根地址總線,可尋址范圍是1M個存儲單元。

8086CPU有16根數(shù)據(jù),一次可以讀一種字也可以讀一種字節(jié)。8088CPU有8數(shù)據(jù)總

線一次以讀一種字節(jié)。

2.8答:1.物理地址就是實際地址,它具有20位的地址值,它是唯一標志IMB

存儲空間的某一單元的地址。2.邏輯地址由段基址卻偏移量構成。程序以邏輯地址

編址,而不是物理地址。3.在8086/8088存儲空間中,把16個字節(jié)的存儲空間看作

一節(jié)。為了簡化操作,規(guī)定各個邏輯段從節(jié)的整數(shù)邊界開始,也就是說段首地址低

4位應當是“0”,因此把段首地址的高16位稱為“段基值”。4.偏移量是該物理地

址距離段首地址的單元數(shù)。

2.9答:總線上傳播信號的一組導線,作為微機各部件之間信息傳播的公共通

道。系統(tǒng)總線按功能分數(shù)據(jù)總線、地址總線、控制總線。

2.10答:1.8086/8088CPU把存儲器分為代碼段、數(shù)據(jù)段、堆棧段、附加段。由

于8086/8088的寄存器是16位,最大只能尋址64K個單元的存儲空間,為了增大尋

址空間把存儲器進行分段,這樣就可以尋址1MB存儲空間。2.每段最大空間為

64KBo

2.11答:(1)2300H:1010H;24010H(2)0000H;I000H:01000H

(3)2AE0H;1690H;2C490H(4)7369H;0010H;736A0H

2.12答:1.數(shù)據(jù)段首地址是1H末地址是21FFFH02.附加段的首地址是20A30H

末地址是30A2FH。3.代碼段的首地址是470E0H=470EHxl0H末地址是

570DFH=(470E0H+FFFFH)。

2.13答:8086/8088CPU復位后來,除代碼段寄存器外,其他標志寄存器、指

令指針寄存器、各段寄存器及指令對列所有被清零。

2.14答:在一種讀總線周期ALE在第一種時鐘周期為高電平,其他周期為低電

平。麗/S7在第一種時鐘周期為低電平,其他周期為高電平。而在第一種時鐘周

期為低電平,第二、三周期為高電平。禰一直為高包平。M/元一直為高電平。DT/R

一直為低電平。

2J5答:1.8086CPU讀/寫總線周期時,至少包括4個時鐘周期。2.CPU在T3

狀態(tài)的前沿(下降沿)對Ready信號進行采樣。若CPU在狀態(tài)的開始采樣到Ready

信號為低電平,那么將在T3和T4之間插入等待狀態(tài)Tw。3.Tw可以是一種,也可以

是多種。CPU在每個TW的前沿處對Ready信號進行采樣。當在Tw狀態(tài)采樣到

READY信號為高電平時,在目前Tw狀態(tài)執(zhí)行完,進入T4狀態(tài)。

第三章存儲器

3.1答:1.容量:存儲器芯片的容量是以1位二進制數(shù)(bit)為單位,因此存儲

器容量是指每一種存儲器芯片所能存儲的二進制數(shù)的位數(shù)。(存儲器容量;存儲單元

數(shù)x位數(shù))芯片數(shù)量(N)=f統(tǒng)容量2.存儲速度:存儲器的基本操作是讀出與寫入,

芯片容量

稱為“訪問”或“存取”。存儲器的存儲速度有兩個時間參數(shù):(1)訪問時間(Access

Time)L從啟動一次存儲器操作,到完畢該操作所經(jīng)歷的時間。(2)存儲周期

(MemoryCycle)K啟動兩次獨立的存儲器操作之間所需的最小時間間隔。3.存儲

器的可靠性:4.性能/價格比:5.其他指標(存儲器的選擇有時還應考慮功耗、集

成度等指標)。

3.2答:按存儲器的讀寫功能分可以分為隨機讀寫存儲器(RAM)和只讀存儲器(ROM)。

隨機讀寫存儲器RAM可以隨機地按指定地址從存儲單元存入或讀?。ê喎Q存取)數(shù)據(jù),

寄存在RAM中的信息,一旦掉電就會丟失。

隨機讀寫存儲器RAM可分為靜態(tài)隨機存取存儲器SRAM,動態(tài)隨機存取存儲器DRAM

和集成隨機讀寫存儲器IRAMo

只讀存儲器(ROM)的基本特性是在正常運行中只能隨機讀取預先存入的信息,雖

然在斷電狀況下,ROM仍能長期保留信息內(nèi)容不變,因此它是一種永久存儲器。

只讀存儲器(ROM)可分為掩膜只讀存儲器(MaskRO”)、可編程只讀存錯器(PROM)、

紫外線可擦除可編程只讀存儲器(EPROM)、電可擦除編程只讀存儲器(EPROM)和迅速

可擦編成只讀存儲器(FlashEPROM)o

掩膜只讀存儲器其構造簡樸,存儲信息穩(wěn)定,可靠性高,可以永久性保留信息;可

編程只讀存儲器是由半導體廠家制作“空白”存儲器陣列(即所有存儲單元所有為1或

所有為0狀態(tài))發(fā)售,顧客根據(jù)需要可以實現(xiàn)現(xiàn)場編程寫入,但只能實現(xiàn)一次編程;紫

外線可擦編程只讀存儲器、電可擦除編程只讀存儲器和快可擦編程只讀存儲器等不僅可

以現(xiàn)場編程。還可以擦除原存儲的信息內(nèi)容,寫入新的信息。

3.3答:SRAM的特點是在一種存儲單元所用晶體管數(shù)目多,但不需要刷新電路。DRAM

的特點是在一種存儲單元所用品體管數(shù)目少,但需要刷新電路。1RAM的特點是將動態(tài)隨

機存取存儲器和刷新電路集成在一片芯片中,它即具有SRAM速度快的長處,又具有DRAM

的廉價。IRAM實際上是附有刷新電路的DRAM。它在現(xiàn)代微機系統(tǒng)中得到廣泛應用,大

容量的內(nèi)存一般都是用IRAM。

3.4答:I)13條地址線和4條數(shù)據(jù)線:2)19條地址線和I條數(shù)據(jù)線

3)17條地址線和4條數(shù)據(jù)線;4)15條地址線和8條數(shù)據(jù)線

3.5答:1)RAM的存儲容量為256Kx8bit;2)有18條地址線和8條數(shù)據(jù)線;3)

若采用6116需要128片,若采用6264需要32片,若采用62128需要16片,若采

用2114需要512片,若采用2141需要512片,

3.6答:1)ROM的存儲容量為512Kx8bit;2)需要19條地址線和8條數(shù)據(jù)

線;3)若采用2764需要64片,若采用27128需要32片,若采用2816A需要256

片,若采用28F256需要16片。

3.7答:常用的存儲器片選控制措施有線選法、全譯碼法和部分譯碼法。

線選法地址線可以不用完,也無需專門的譯碼電路。但由于高位地址線可隨意

取值?;?。因此,存在地址重疊,并且導致存儲器地址不能持續(xù)分布。

全譯碼法所有地址線均參與地址譯碼,芯片的地址線直接和低位地址總線相

連,高位地址總線經(jīng)譯碼器或邏輯電路與各芯片的片選信號相連。

部分譯碼法與全譯碼法類似,只是高位地址線中有一部分進行譯碼,產(chǎn)生片選

信號,而不是所有。這種措施稱為部分譯碼法。

3.8答:第一片的首地址為21000H(錯),末尾地址為24FFEHo第二片的首地

址為2100IH,末尾地址為24FFFH。第三片的首地址為25000H,末尾地址為28FFEH。

第四片的首地址為25001H,末尾地址為28FFFH。

3.9第一片Ai9-Ai2=01000000,地址范圍是40000H-40FFEH

第二片AI9-AI2=01000000,地址范圍是40001H~40FFFH

第三片Ai9~Ai2=01000001,地址范圍是41000H-41FFEH

第四片AI9—A12=01000001,地址范圍是41001H-41FFFH

3.10(有問題A0和BHE未畫)按既有的連線地址為

第一片A⑻?Ai3=1000000,地址范圍是8000CH?81FFFH_

第二片A??Ai3=10()0()()l,地址范圍是8H?83FFFH_

第三片A.?AgOOOOlO,地址范圍是84000H~85FFFH_

圖3-18086CPU與存儲器連接電路圖

第四片A19-Ai3=1000011,地址范圍是86000H?87FFFH.

圖3-28086CPU與存儲器連接電路圖

3.111)答:是譯碼功能。

2).

M1O

A|(t

CPUA”

8086譙不RAM)

36264

ITD

BHF

*WRO)~DT

WR

RD

?-Dis

3)答:ROM。、ROM]的地I止范圍。94000H-97FFFH

3.12答:存儲器(1)的地址范圍為8OOOOH-8OFFEH;存儲器(2)的地址范

圍為80001H~8OFFFH。(題目有錯,存儲器(4)的地址范圍為81001H-81FFFH)

3.13答:1)系統(tǒng)的存儲容量為:B3FFFII-BOOOOI1+1=400011=16KB;

2)需要6264芯片:(16K*8bit)/8K*8bit=2片:

3)畫出系統(tǒng)連接圖。兩片6264芯片的地址范圍如表所示,高位地

址A14?A19參與譯碼形成兩片6264的片選信號,奇地址存儲器芯片和偶地址

存儲器芯片由A0和瓦行辨別。存儲器與系統(tǒng)總線的連接電路如圖題3.13所示。

A19A18A17A16AI5A14A13A12AllA10A9A8A7A6A5A4A3A2AlAO

10II0000000000000000

101100111I11IIII11II

M

G

-

M/ioG譯

-碼

A

cpuI8GC;器AnA。

A16B

AWE

I5A

AI-4OE6264(2)

D

-CS2

RR

wCS1

D()?..D?

BHE

Ao

Do~D?

DS~D15

圖題3.13存儲器擴展電路

3.14答:(不是8086系統(tǒng))

A<J-AI>5棒

Gu洋

CS山聿…(scs

61166116

G;*梆T61162732

£RD--------EDRD

lRD

vTI—WRRD

LX.6%D,

3.15在8086CPU構成的系統(tǒng)中,用4片2764(8Kx8bit)存儲芯片構成隨機ROM

存儲系統(tǒng),其第一片的苜地址為(COOOH:8000H),試畫出存儲器與CPU的連接電路

圖。

A|)*A|

-Y.

d碼

a蹲

C

B

AWE2764(4)

CS

RIDO...D.

>1|^>1

BlIl-

Ao

答:DK~DI$

第四章8086/8088指令系統(tǒng)

4.1答:機器語言的每一條指令是以二進制為弋碼的指令,它可以被計算機直

接執(zhí)行。匯編語言是用助記符或用符號來編寫指令,是一種與機器語言一一對應的

語言。機器不能直接執(zhí)行程序,程序必須通過翻譯,機器才能執(zhí)行。高級語言是面

向過程的語言,它不依賴于特定的機器,獨立于機器,用同一種高級語言編寫的程

序可以在不一樣的機器上運行而獲得相似的成果。

4.2請指出如下各指令的源、目的操作數(shù)所使用的尋址方式。

(1)MOVSL21OOH源:立即數(shù)尋址:目:寄存器尋址

(2)SBBBYTEPTRDISPIBX],7;源:立即數(shù)尋址;目:寄存器相對尋址

(3)AND[DI],AX源:寄存器尋址;U:寄存器間接尋址

(4)ORAX,[609EH]源:直接尋址;目:寄存器尋址

(5)MOV[BX+DI+30H1,CX源:寄存器尋址;目:基址變址相對尋址

(6)PUSHES:[BP]源:寄存器間接尋址;目:隱含尋址

(7)CALL(DI]DISP寄存器相對尋址

(8)JNZShortlabel直接尋址

(9)CBWBL(指令錯)

(10)MOVAX,|l()00H]源:直接尋址;目:寄存器尋址

(11)MOVAX,ARRAY[BX][SI];源:基址變址相對尋址;目:寄存器尋址

(12)MULBL源:寄存器尋址:目:隱含尋址

(13)MOVAX,[BX][SI]源:基址變址尋址;LI:寄存器尋址

(14)MOVAL,TABLE源:直接尋址;目:寄存器尋址

(15)MOVAX,DISPfBX+DI]源:基址變址相對尋址;目:寄存器尋玨

(16)MOVAX,[BX1源:寄存器間接尋址;目:寄存器尋址

4.3答:基址寄存器BX、基址指針寄存器BP、原變址寄存器SI、目的變址寄

存器DI。

4.4下列各條指令與否有錯?假如有,請指出錯誤之處。

(1)MOVDS,1000H立即數(shù)不能直接給段寄存相送數(shù)

(2)MOV[100],23HLI的操作數(shù)應指明類型,改為BYTEPTR"0()1

(3)ADDAX,[BX+BP+6]存儲器尋址不能A兩個基地址[BX,BP]

(4)PUSHDL進棧是以字為單位

(5)INAX,[3FH]I/O接口地址不能加括號

(6)OUT3FFH,AL口地址3FF應放在DX中

(7)LESSS,[SI]SS不能寄存偏移量

(8)POP[AX]AX不月來做間址寄存器

(9)IMIJL4CH乘法中源操作數(shù)不能是立即數(shù)

(10)SHLBX,5移位超過1位應放在CL中

(11)INT30()立即數(shù)(向量碼)應不不小于255

(12)XCHGDX,0FFFH此指令中不能有立即數(shù)

(13)POPAL出校是以字為單位

(14)DIV32H除法中原操作數(shù)不能是立即數(shù)

(15)MOVAX,BYTEPTR[SI1源操作數(shù)和目的操作數(shù)不等寬

(16)MOVDX,DS:[BP]對的

(17)MOV128,CL目的操作數(shù)不能為立即數(shù)

4.5設若標志寄存器原值為0A11H,SP=0060H,AL=4.下列幾條指令執(zhí)行

后,標志寄存器、AX、SP的值分別是多少?

PUSHF;F-SP;SP=5EH,[5EH]=0A11H

LAHF;F怔LAH;AH=11H

XCHGAH,AL;AH04H,AL=11H

PUSHAX;SP=5CH,[5CH]=0411H,

SAHF;AH-F低8;

POPF;SP-F

標志寄存器=0411H,AX=0411H,SP=()()5EH

4.6已知DS=H,有關的內(nèi)存單元值為:(21000H)=00H,(21001H)=l2H,

(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,

(23401H)=30H,(23600H)=60H,(23601H)=30H,符號COUNT的偏移地址為

1200Ho執(zhí)行下列指令后,寄存器AX、BX、SI的值分別是多少?

MOVBX,OFFSETCOUNTBX=120>H

MOVSI,[BXJSI=1000H

MOVAX,COUNT[SI][BX]

AX=3040H,BX=1200H,SI=1()()()H

4.7答:AX=322FH,標志寄存器值為0410H

4.8設單元DATA在內(nèi)存數(shù)據(jù)段中的偏移量為24C0H,在24C0H?24c3H單元

中依次寄存著55H、66H、77H、88Ho下列幾條指令執(zhí)行后,寄存器AX、BX、

CL、SI、DS的值分別是多少?

MOVAX,DATA:AX=6655H

LEASI,DATA:SI=24C0H

MOVCL,(SI]:CL=55H

LDSBX,DATA;DS=8877H,BX=6655H

4.9若AX=26D3H,CX=7908H,CF=1,OF=0,執(zhí)行下列指令后,寄存器AX、

CX的值分別是多少?AX=A74cHCX=FA()8H_CF=_0_OF=_()_。

SALCH,1CH二FA.CL=08H

RCRAX,CLAX=A726H,CF=1

ROLAL,1AL=4CH.CF=0

4.10答:原串在數(shù)據(jù)段中,但可以段超越。目的串必須在附加段中。

4.11答:M/7O=1;DT/R=]t~RD=\-WR=()t

數(shù)據(jù)總線上的數(shù)是0508H;地址總線上的數(shù)分是49420H

4.12(與21題重)答:AL=23H,功能將壓縮的BCD碼轉(zhuǎn)換為二進制。

4.13答:上述程序段執(zhí)行后,字節(jié)單元HCOD的內(nèi)容是43H;HCOD+1

的內(nèi)容是35H。該程序段的功能是將壓縮的十六進制轉(zhuǎn)換為ASCII字符。

4.14執(zhí)行下面的程序段后,(CL)=02H,(AX)=0040H。

XORBX,BX

MOVAX,001OH

MOVCL,2

SALAL,CL

MOVBL,AL

SALAL,CL

ADDAX,BX

4.15問:(1)初值(AL)=37H時,程序段執(zhí)行成果:(AL)=07H

(2)初值(AL)=9FHH、j,程序段執(zhí)行成果:(AL)-OFFH

4.16下列程序段中,以X為首址的字單元中的數(shù)據(jù)依次為1234H、5678H;

以Y為首址的字單元中的數(shù)據(jù)依次為8765H、4321H。閱讀程序,給出必要的程

序注釋并完畢程序后的問題。

LEASI,X;SI=0000H

LEADI,Y;DI=0004H

MOVDX,[SI4-2];DX=5678H

MOVAX,X;AX=1234H

ADDAX,X;AX=2468H

ADCDX,[SI4-2];DX=ACF()H

CMPDX,[DI4-2];ACFOH與8765H比

JLL2;不不小于轉(zhuǎn)移到L2

CMPAX,Y;不小于2468H與4321比

JLLI;不不小于轉(zhuǎn)移到L1

JMPEXIT;無條件轉(zhuǎn)移到EXIT

Li:MOVAX,1;給AX送1

JMPEXIT;無條件轉(zhuǎn)移到EXIT

L2:MOVAX,2

EXIT:...

以上程序代碼執(zhí)行之后,AX=2;DX=ACFOH

4.17答:程序?qū)⒁来蜗蚨褩喝氲臄?shù)據(jù)為0003H、0002H、OOOlHo該程序

段實現(xiàn)了將二進制轉(zhuǎn)換十進制功能。

4.18答:程序功能是計算AX=l-10,BX=1()H起的累加和。AX=1(),BX=47H,

CX=()o

MOVAX,0000H

MOVBX,0010H

MOVCX,10

LP:INCAX

ADDBX,AX

LOOPLP

HLT

4.19答:以上程序代碼執(zhí)行之后,AX=2:DX=ACFOH

4.20閱讀下列程序段,給出必要的程序注釋并完畢程序后的問題。

ADDAL,AL;2*AL

ADDAL、AL:4*AL

MOVBL,AL:ALfBL

SALBL,1:8*AL

ADDAL,BL:12*AL

HLT

(1)該程序段的功能是什么?答:把AL中的內(nèi)容乘以12

(2)設AL的初值為OAH,執(zhí)行該程序段后,AL為多少?答:AL=78H

4.21已知有程序段如下:(與12題重)

(1)該程序段的功能是什么?

答:將BCD碼轉(zhuǎn)換成二進制

(2)執(zhí)行該程序段后,AL=23H

4.22、下列程序段規(guī)定在內(nèi)存40000H開始的次序30個單元中寄存著8位無符

號數(shù),將它們的和放在DX中,試填空完畢該程序(并加入必要的注釋)或自行編

制一段程序完畢上述功能。

MOVAX,4000H;

MOVDS,AX;送段首地址

MOVSI,0000H;送偏移量

MOVex,30:送循環(huán)次數(shù)___________

XORAX,AX;清零

GOON:ADDAL,_1S1];兩數(shù)相加

ADCAH,OOH:加進位位______________

INCSI?修改地址____________

DECex?計數(shù)器減1___________

JNZGOON*不為零循環(huán)___________

MOVDX,AX;成果送DX

4.23在AL中有一種十六進制數(shù)的ASCII碼,完畢下面程序段在每一空白處填

上一條合適指令(并加入必要的注釋),實現(xiàn)將AL中的ASCII碼轉(zhuǎn)換成二進制數(shù)。

CMPAL,3AH;與3AH比較

JCDONE;不不小于轉(zhuǎn)移到DONE

SUBAL,7;不小于減7

DONE:SUBAL,30H:AL減30H

HIT

4.24已知附加段中有一塊長50個字的數(shù)據(jù)區(qū),首址為DESTo欲編程將它

們所有初始化為0FFFFH值,試在下面程序段的空白處填上合適的指令或操作數(shù)

(并加入必要的注釋),以實現(xiàn)上述功能。

LEADLDEST;取DEST偏移量

MOVCX,100;送計數(shù)值

CLD;清方向標志位,DF=0

MOVAL,OFFH;將AL-OFFH

REPSTOSB;將送10()個字節(jié)FFH到首址為DEST區(qū)域

4.25已知附加段中有一塊長50個字的數(shù)據(jù)區(qū),首址為DEST。欲編程將它

們所有初始化為OFFFFH值,試在下面程序段的空白處填上合適的指令或操作數(shù)

(并加入必要的注釋),以實現(xiàn)上述功能。(與24題重)

DI,DEST;_____________________

MOVCX,;

CLD;

MOVAL,OFFH;

4.26附加段中有某字符串首址為BLOCK,長17個字節(jié)。欲查找其中第一

次出現(xiàn)字符飛”的位置.并將該位置所在的偏移量入棧保護。試在下面程序段的

空白處填上合適的指令(并加入必要的注釋)或操作數(shù)以實現(xiàn)上述功能。

MOVDI,OFFSETBLOCK;送BLOCK的偏移量

MOVAL,65H?送cASCH碼

MOVCX,17送計數(shù)值_______________

CLD*方向標志位清零

REPNZ_SCASB,*_尋找e____________

JNEOTHER,_找至Ie轉(zhuǎn)至ijOTHER

DECDI?,_修改地址______________

PUSHDI偏移量入棧保護_________

OTHER:......(略)

4.27已知有某字串BUF1的首址為0000H,BUF2的首址為00I0H,數(shù)據(jù)段

與附加段重疊。欲從BUFI處開始將10個字數(shù)據(jù)次序傳送至BUF2處,試在下

面程序段的空白處填上合適的指令或操作數(shù)以實現(xiàn)上述功能。

LEASI,BUFI;送BUFI的偏移量

ADDSI,12H:地址移動到字符串最終

LEADI,BUF2:送BUF2的偏移量

ADDDI,12H:地址移動到字符串最終

STD;方向標志位清零

MOVCX,1();送計數(shù)值

REPMOVSW;進行串操作

4.28在DAT和DAT1兩個字節(jié)變量單元中有兩個十進制數(shù)的ASCII碼,編程

實現(xiàn)將這兩個ASCII碼轉(zhuǎn)換為兩個BCD碼,并以壓縮形式寄存在REST字節(jié)變量

單元中。試填寫該程序劃線部分,并加入必要的注釋。

MOVAL,DAT;取第一種數(shù)

SUBAL,30H;將ASCH碼轉(zhuǎn)為BCD碼

MOVCL,4:送移位數(shù)

SHLAL,CL;將BCD碼放在AL高四位中

MOVBL,DAT1;取第二個數(shù)

SUBBL,30H;將DAT1中的ASCII碼轉(zhuǎn)為BCD碼

ORAL,BL;將兩個BCD碼合并在AL寄存器中

MOVREST,AL:將壓縮形式的BCD碼存入REST中

HLT

第五章匯編語言程序設計

5.1答:標號在指令性指令的名字,寫在指令前面,標號后必須有冒號。變量

在偽指令前是定義某一數(shù)據(jù)區(qū)所起的名字,它背面不帶冒號。標號和變量均有段、

偏移量的屬性,標號的類型是遠和近型,變量的類型是字節(jié)、字、雙字等。

5.2答:指令性指令是給CPU的命令,它是由

07H―0100HADD1

匯編程序翻譯成機器語言指令,在程序運行時由CPU

00H

來執(zhí)行,每條指令都對應CPU一種特定的操作。偽

00H

指令不匯編成機器語言,僅僅在匯編過程中告訴匯編

00H

程序應怎樣匯編。

01H

5.3

00H

答:ADD1、ADD2、ADD3的段基址為I000H:

ADD1、偏移量為H、類型為雙字;ADD2、偏移00H

量為H、類型為字節(jié);ADD3、偏移量為2068H、00H

類型為字。

5.4??????

答:分派狀況如右圖01HHADD2

5.5答:(定義了堆棧段[81字節(jié)]、數(shù)據(jù)段(1704H

字節(jié))和代碼段)05H

0511

05H

05H

02H1006HADD1

07H

I2H

01H

9AH1009HADD2

??????

56H

2068HADD3

42H

41H題5.4圖

題5.3圖

―0100HADD1

5.6答:ADD1占有多少個字節(jié)

5.7答:1.根據(jù)設計任務,抽象出描述問題的數(shù)

學模型。2.確定實現(xiàn)數(shù)學模型的算法或求解的詳細

環(huán)節(jié)和措施。3.繪制出程序流程框圖。4.分派存

儲空間及工作單元(包括寄存器)。確定數(shù)據(jù)段、堆

棧段、代碼段及附加段在內(nèi)存中的位置。5.根0127H題5.6圖

據(jù)流程圖編寫程序。6.靜態(tài)檢查。7.上機調(diào)試。8.程

序運行,成果分析。

5.8答:源程序構造一般包括4個段,它們是代碼段、數(shù)據(jù)段、附加段和堆棧

段。其中代碼段是必須存在的,其他段視詳細狀況而定。

一般用到四種程序構造:次序構造,分支構造,循環(huán)構造,子程序構造。

5.9答:XORAX,AX

MOVDX,0

MOVAH,45H

MOVDL,AH

ANDDL,OFH

ADDDL,30H

ANDAH,OFOH

MOVCL,4

SHRAH,CL

ADDDL,30H

ADDAX,DX

HLT

5.10答:MOVAL,A

MOVBL.B

IMULBL

94H—DATA1

MOVCX,C

16H

ADDAX,CX

26H

SUBAXJ8

89H

HLT

30H

(1)從DATA1單元開始,將8個組合BCD—DATA2

碼累加起來,其和(超過1字節(jié))存入以RES55H

為首址的單元中(低位在前)c04H

圖5-15.11題圖74H

(2)將它們看作2個分別以DATA1、DATA2??????一RES

為首址的4位十進制數(shù)(低位在前),求此兩數(shù)

之差并存入以RES為首址的單元中。

答:1、LEASI,DATA12、LEASI,DATAl

LEADI,DATA2LEADI,DATA2

1

LEABX,RESLEABX,RES

MOVCX,7XORAX,AX

XORAX,AXMOVAX,WORDPTR[SI]

MOVAL,BYTEPTR[SI]ADDAX,WORDPTR[DI]

AAI:INCSIMOVDX,WORDPTR[SI-2]

ADDAL.BYTEPTR[SIJADCDX,WORDPTR[Dl+2|

ADCAH,0MOVWORDPTR[BX],AX

LOOPAAIMOVWORDPTR[DI+2],DX

MOVWORDPTR|BX1,AXHLT

HLT

5.12答:根據(jù)多種條件判斷和比較進行操作,滿足條件去做一種操作,不滿

足條件去做另一種操作。每一種操作程序稱為一種分支,一次判斷產(chǎn)生兩個分支,

只有一次判斷的稱為單重分支程序。多次判斷產(chǎn)生多種分支,稱為多重分支程產(chǎn)。

5.13答:MOVAL,DAT

ANDAL,DAT

JNSPOSI;若為正數(shù)轉(zhuǎn)P0S1

TESTAL,01H;測試負數(shù)的奇偶性

JZM;若為負偶數(shù)轉(zhuǎn)M

ORAL,BUF;若為負奇數(shù)進行'或‘運算

JMPDONE

M:XORAL,BUF;負偶數(shù)進行‘異或‘運算

JMPDONE

POSI:TESTAL,0IH:判斷正數(shù)的奇偶性

JZN;為正偶數(shù),轉(zhuǎn)N

ADDAL,BUF:為正奇數(shù)進行'加'運算

JMPDONE

N:ANDAL,BUF;正偶數(shù)進行‘與'運算

DONE:MOVBUF,AL

HLT

(開始)

5.14答:實現(xiàn)的獵施仍是兩兩進行比較判斷。其環(huán)節(jié)是:先取出X,Y,Z,假設

存于AL,BL,CL寄存器中。采用兩數(shù)比較換位法,因AL中的數(shù)和BL,CL分別進行

比較,在AL中總是寄存中間值。程序段及流程圖如右圖所示:

MOVAL,DAT1

MOVBL,[DAT1]+1

MOVCL,[DAT1]+2

CMPAL,BL

JBLP1

XCHGAL,BL

LP1:CMPAL,CL

JAE*5AV

XCHGAL,CL

CMPAL,BL

JBSAV

XCHGAL,BL

SAV:MOVBUF1,AL

MOVDL,AL;

MOVAH,02H

INT21H

HLT

5.15答:LEASI,ADD1

LEADI,ADD2

XORAX,AX

MOVAL,BYTEPTR|SI]

CMPAL,30

JBAA

MOVBYTEPTR[DI],2

JMPDONE

AA:CMPAL,1

JNBBB

MOVBYTEPTRfDI],0

J

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論