




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
微型計算機原理與接口技術第三版(張榮標)答案
微型計算機原理與接口技術第三版答案
第1章練習題
1.選擇題
(1)BCA(2)A⑶DA⑷C
2.填空
(1)10,12
(2)取出指令,執行指令
(3)
(4)內部碼
3.簡答題
(1)微處理器,微型計算機和微型計算機系統三者有何聯系與區
別?
答:微處理器是把原來的中央處理單元CPU的復雜電路(包括運
算器和控制器)做在一片或幾片大規模集成電路的芯片上。把這種微
縮的CPU大規模集成電路稱為微處理器。
微型計算機是以微處理器為核心,再配備上用大規模集成電路工
藝制成的存儲器和I/O接口就構成了微型計算機。
以微計算機為核心,再配備上系統軟件、I/O設備、輔助電路和電
源就構成了微機系統。微型計算機系統包括硬件和軟件了兩大部分。
(2)計算機中為什么采用二進制數表示?
答:計算機是一種電器設備,內部采用的都是電子元件,用電子
元件表示兩種狀態是最容易實現的,比如電路的通和斷、電壓高低等
等,而且也穩定和容易控制。把兩種狀態用0,1來表示,就是用二進制
數表示計算機內部的數據。
(3)簡述程序的運行過程。
答:即取指令一分析指令一執行指令。根據程序計數器PC中的值
從程序存儲器讀出現行指令,送到指令寄存器。將指令寄存器中的指
令操作碼取出后進行譯碼,分析其指令性質,然后執行指令。
(4)設兩個正的浮點數如下。
1)若是否一定有?
2)若S1和S2均為規格化的數,且,是否一定有?
答:1)若不一定有。
若SI=111001016,S2=00100101B
當Pl=01B時,P2=10B時,
故
2)若S1和S2均為規格化的數,且,一定有。
浮點規格表示要求對浮點二進制正數,其尾數數字S部分的最高
位必須是1,故不會出現上述情況,當時,一定有。
4.計算題
(1)計算十進制數-47的原碼、反碼、補碼(8位二進制的形式
表示),并說明8位二進制原碼、反碼、補碼所能表示的數值范圍
(用十進制表示)。
解:[-47]原=10101111
[-4刀反=11010000
[-4刀補=11010001
8位二進制原碼表示的范圍為-127?+127,反碼表示的范圍為-
127~+127,補碼表示的范圍為-128~+127。
(2)將十進制數658.125轉換成二進制、八進制、十六進制和BCD
碼。
解:658/16=41...余數為2
41/16=2.?.余數為9
2/16=0…余數為2
0.125x16=2小數部分為0,整數部分為2
658.125D=292.2H=001010010010.0010B=1222.1Q=
011001011000.000100100101(BCD數)
(3)設浮點數的表示格式為階碼4位(包括階符1位)、尾數8
位(包括尾符1位)。階碼和尾數均用補碼表示。寫出二進制數X=-
0.0010110011B的規格化浮點數表示。
解:X二-0.0010110011B=-0.10110011X
S=0100110
Sf=1
J=110
Jf=1
規格化浮點數為1no10100110
(4)若X=-79,Y=+97,求[-X]補,[Y]補,[X-Y]補,[X+Y]補,
[-X-Y]補,要求給出求解過程,并指明運算后的溢出情況。
解:[-X]補=01001111
兇補二10110001
[Y]補=01100001
[-Y]補=10011111
[X-Y]補=[X]補+[-Y]補=01010000
10110001
+10011111
101010000
CS=1,CP=0,負溢出
[-X+YX卜=[-X]補+[Y]補=10110000
01001111
+01100001
10110000
CS=0,CP=1,正溢出
[以-丫]補=[以]補+[-Y]補=11101110
01001111
+10011111
11101110
CS=0,CP=0,無溢出
第2章練習題
1.選擇題
(1)D(2)A(3)B(4)C(5)C(6)B(7)A(8)A
2填空題
(1)地址總線的寬度,OOOOOH~OFFFFFH
(2)SS,DS,CS,ES
(3)第33()引腳
(4)SS,DS
(5)奇地址區,偶地址區,高8位,低8位
3.簡答題
(1)什么是指令周期?什么是總線周期?一個總線周期至少包
括幾個時鐘周期?
答:指令周期是一條指令執行所需的時鐘周期,CPU在執行指令
過程中,凡需執行訪問存儲器或訪問I/O端口的操作都統一交給BIU
的外部總線完成,進行一次訪問所需的時間稱為一個總線周期。一般
一個基本的總線周期由4個時鐘周期組成。
(2)8086CPU中,標志寄存器包含哪些標志位?各標志位為
。,T分別表示什么含義?
答:標志寄存器包含狀態標志和控制標志,狀態標志包括符號標
志、零標志、奇/偶標志、進位標志、輔助進位標志、溢出標志,控制
標志包括方向標志、中斷標志、跟蹤標志。
符號標志(SF)用來指出前面運算執行后的結果是正還是負,結
果為負,則;結果為正則零標志(用來指出前面
SF=1,SF=OeZF)
運算執行后的結果是否為零,結果為零,則ZF=1;結果為非零,則
奇/偶標志(用來指出前面運算結果的低位中所含的
ZF=0oPF)81
的個數為偶數還是奇數結果為偶結果為奇進位
,,PF=1;,PF=Oe
標志(CF),當執行加法運算使最高位產生進位或執行減法運算弓I起
最高位產生借位時否則輔助進位標志(當執
ZCF=1,CF=0oAF),
行加法運算使第3位往第4位上有進位或減法運算使第3位從第4位
有借位時,則AF=1,否則AF=O。溢出標志(OF),當運算的結果超
出了范圍是就會產生溢出,OF=1,否則OF=0。方向標志(DF)在
串操作指令中用來控制串操作過程中地址的增減,當DF=0,則地址不
斷遞增;當DF=1,則地址會不斷遞減。中斷標志(IF)在中斷過程中
控制是否響應可屏蔽中斷的請求,當下二0,則CPU不能響應可屏蔽中
斷請求當IF=L則CPU可以接受可屏蔽中斷請求。跟蹤標志(TF)在
中斷過程中控制是否響應單步中斷的請求,當TF=1,則CPU按跟蹤
你方式執行指令;當TF=O,則CPU不會響應單步中斷。
(3)8086CPU中有哪些通用寄存器和專用寄存器?說明他們的
作用。
答:4個通用寄存器,AX:16位的累加器;BX:16位的基數寄
存器,可用于寄存器間接尋址;CX:16位的計數寄存器,可作為程序
循環計數寄存器;DX:16位的數據寄存器,可作為I/O指令專用間接
尋址寄存器。
4個專用寄存器,BP:16位的基數指針寄存器,用來存放位于堆
棧段中的一個數據區基址的偏移地址;SP:16位的堆棧指針寄存器,
存放棧頂的偏移地址;SI:16位的源變址寄存器,用于存放當前數據
段的偏移地址;DI:16位的目的變址寄存器,也用來存放當前數據段
的偏移地址。
(4)在8086CPU中,已知CS寄存器和IP寄存器的內容分別如
下所示,請確定其物
理地址。
1.CS=1000HJP=2000H
2.答:物理地址:CS*16+IP=10000H+2000H=12000H
3.CS=1234H,IP=OCOOH
4.答:物理地址:CS*16+IP=12340H+0C00H=12F40H
5.⑸設(AX)=2345H,(DX)=5219H,請指出兩個數據相加或相減
后,FLAG中狀態標志位的狀態。
6.答:相加:0010001101000101
7.+0101001000011001
8.0111010101011110
9.CF=0,SF=0,ZF=0,AF=0,OF=0zPF=0
10.相減:0010001101000101
.0101001000011001
.1101000100101100
.CF=1,SF=1,ZF=0,AF=1,OF=1/PF=0
(6)8086CPU在最小模式下構成計算機系統至少應該包括哪幾
個基本的部分?
答:一片8284A時鐘發生器,三片8282或74LS373地址鎖存
器,兩片8286總線接收器。
(7)簡述堆棧指示器SP有什么功能?堆棧的操作過程是怎樣的?
試舉例說明。
答:堆棧指示器(SP)存放棧頂的偏移地址,以便存取位于當前
堆棧段中的數據。
舉例:PUSHBX;將寄存器BX的內容壓入堆棧。
操作過程分析:執行PUSH指令時,SP先自動減2,BX的低8位
放入SP所指單元中,高8位放入SP+1所指單元中。
第3章練習題
1.選擇題
(1)D(2)C(3)A(4)A
2.填空題
(1)字節遞增8DH,5CH,3BH,1AH
(2)遞增
(3)60H0
(4)1F02C
3.問答題
(1)試分別說明換碼指令和串操作指令所用的隱含寄存器及標志
位,并說明各自的工作過程。
答:換碼指令XLAT所用的隱含寄存器為BX和AL。指令〃XLAT〃
的工作過程:將BX和AL中的值相加,把得到的值作為地址,然后將
此地址所對應的單元中的值取到AL中。
串操作指令所用的隱含寄存器和標志位為CX、SI、DI和DFO字
符串傳送指令〃REPMOVSB”的工作過程:將DS:SI邏輯地址所指
存儲單元的字節傳送到ES:DI邏輯地址所指的內存單元中,當DF=0
時,SI和DI均增1,CX減1;當DF=1時,SI和DI均減1,CX減
lo重復執行上述操作,直到CX=0時停止。
(2)RET與IRET兩條指令有何區別?并說明各自的應用場合。
答:RET是從堆棧中彈出斷點地址,裝入IP或IP與CS中,從而
段內返回的目的。主要用于子程序的返回。IRET是中斷返回指令,是
專門為中斷服務程序返回設計的。
(3)試分別舉例說明8086CPU乘法與除法指令所用的隱含寄存
器。
答:乘法指令有無符號數乘法指令MUL和有符號數乘法指令
IMUL。MUL隱含寄存器AX,IMUL隱含寄存器AX和DXO如指令
〃MULDL〃的功能是將DL中的內容與AL中的內容相乘,結果放在
AX中。
除法指令也有無符號數除法指令DIV和有符號數除法指令IDIVe
DIV隱含寄存器AXJDIV隱含寄存器AX和DXO如指令〃IDIVBX〃
的功能是將DX和AX中的32位有符號數除以BX中的16位有符號
數,商在AX中,余數在DX中。
(4)簡述堆棧指示器SP有什么功能?堆棧的操作過程是怎樣的?試
舉例說明。(教材P85)
(5)8086CPU有哪些操作數的尋址方式?請分別舉例說明。
答:8086CPU中操作數尋址可分為4種:立即尋址、寄存器尋址、
存儲器尋址和I/O端口尋址。立即尋址如MOVAX,3412H。寄存器尋
址如MOVAX,BX。存儲器尋址可分為五類:直接尋址如MOV
AXJ7834H];寄存器間接尋址如MOVAX,[BX];寄存器相對尋址如
MOVAXJBX+12H];基址加變址尋址方式如MOVAXJBX+SI];相
對的基址和變址尋址如MOVAH/BX+SI+2468H]。I/O端口尋址包括
兩類:直接端口尋址如INAL,27H;間接端口尋址如OUTDX,AL。
4.請指出下列指令中源操作數和目的操作數的尋址方式。
(1)MOVSIJ20;目的操作數為寄存器尋址,源操作數為立即尋
址;
(2)MOVBPJBX]舊的操作數為寄存器尋址,源操作數為寄存
器間接尋址;
(3)MOVBXJ200];目的操作數為寄存器尋址,源操作數為直接
尋址;
(4)PUSHDS;源操作數為寄存器尋址;
(5)POPBX;目的操作數為寄存器尋址;
(6)ANDDLJBX+SI+30H];目的操作數為寄存器尋址,源操作
數為相對的基址和變址尋址;
5.請寫出如下程序片段中每條邏輯運算指令執行后標志ZF、SF、
和PF的狀態:
MOVALZ4CH;ZF不變,SF不變,PF不變
ANDAL,OFOH;ZF=OrSF=0zPF=O
ORBL,4CH;ZF=O,SF=0,PF=O
XORAL,AL;ZF=1zSF=0,PF=1
6.請寫出如下程序片段中每條算術運算指令執行后標志CF、ZF、
SF、OF、PF和AF的狀態:
MOVBL,54H;各標志位保持不變
ADDBL,4BH;CF=O,ZF=OxSF=1,OF=1,AF=1,PF=O
CMPBLz0B6H;CF=lzZF=0,SF=1,OF=0zAF=0,PF=O
SUBBL,BL;CF=O,ZF=1,SF=0,OF=0,AF=1,PF=O
INCBL;CF=O,ZF=O,SF=O,OF=0,AF=0,PF=O
7.(DS)=1000H/(SS)=2500H/(SI)=0100H/(BX)=0800H,(BP)=06
OOH,指出下列指令的目的操作數字段尋址方式,并計算目的操作數字
段的物理地址。
(1)MOV[BX]rCX
目的操作數為寄存器間接尋址
目的操作數的物理地址為:DSX16+0800H=10800H
(2)MOV[2000H],BX
目的操作數為直接尋址
目的操作數的物理地址為:DSxl6+2000H=12000H
(3)MOV[BP],BX
目的操作數為寄存器間接尋址
目的操作數的物理地址為:SSxl6+0600H=25600H
(4)MOV[BP+200],BX
目的操作數為寄存器相對尋址
目的操作數的物理地址為:SSxl6+0600H+C8H=256C8H
(5)MOV[BX+3OO][SI]rAX
目的操作數為相對基址加變址尋址
目的操作數的物理地址為:
DSxl6+0800H+12CH+0100H=10A2CH
8.已知(SS)=800H,(SP)=0040H,(CX)=OAFOH,
(DX)=201Ho下列指令連續執行,請指出每條指令執行后SS、SP、
AX、BX寄存器中的內容是多少?
PUSHCX;SS=0800H,SP=OO3EH,AX不變,BX不變
PUSHDX;SS=0800H,SP=OO3CH,AX不變,BX不變
POPAX;SS=0800H,SP=OO3EH,AX=0201H,BX不變
POPBX;SS=0800H,SP=0040H,AX=0201H,BX=0AF0H
9.閱讀下列各小題的指令序列,在后面空格中填入該指令序列的
執行結果。
(1)MOVDL,37H
MOVALZ85H
ADDAL,DL
DAA
AL=22H,BL=37H,CF=1
(2)MOVDX,1F45H
STC
MOVCX,95
XORCHQFFH
SBBDX;CX
DX=1FBOH,CF=1
10.已知程序段如下。
CMPCX,BX
JNCLI
JNCL2
JMPL3
假設有以下三組CX,BX值,那么在程序執行后,分別轉向哪里?
(1)(CX)=D3O1H,(BX)=D301H
答:轉向L1
(2)(CX)=2E50H;(BX)=8301H
答:轉向L2
(3)(CX)=477BH1(BX)=10DCH
答:轉向L1
11.設4個BCD碼DTLDT2、DT3、DT4分別放在AL、AH、
CL.CH的低4位,請編寫程序段,將這4個數按如下要求合并存放
到BX寄存器中。
BXDTIDT2DT3DT4
解:程序段如下:
MOVBXQ0H
ANDAXZOFOFH
ANDCX.OFOFH
MOVBL,CL
MOVCL,4
SHLBLZCL
ADDBL,CH
MOVBHZAL
SHLBH,CL
ADDBH,AH
12.請用串操作指令實現將10-99這90個數從2100H開始的內
存單元搬到3100H開始的內存單元處。
解:程序段如下:
MOVDS,2000H
MOVES3OOOH
CLD
MOVCXz90
MOVSIJOOH
MOVDI,100H
REPMOVSB
第4章練習題
1.選擇題
(1)BC(2)A(3)C(4)D
2.問答題
(1)變量和標號有什么異同之處?
答:變量和標號都有三種屬性:段地址、偏移地址及類型。變量
是存放在存儲器單元中的操作數,其值可以改變,變量的類型可以是
BYTE(字節)、WORD(字)、DWORD(雙字)等;標號是可執行
指令語句地址的符號表示,即用標志符來表示地址,標號的類型可以
是NEAR(近)或FAR(遠)。
(2)簡述匯編語言中偽指令的基本作用和特點,與機器指令相比
有何區別?
答:偽指令語句沒有對應的機器代碼,經匯編程序匯編后并不產
生目標代碼,由匯編程序對源程序匯編期間進行處理,主要作用是完
成變量的定義、存儲器的分配、段結構的定義,段的分配、過程的定
義程序開始和結束的指示等。而機器指令由CPU來執行,它的每一
條指令語句在源程序匯編時都要產生可供計算機執行的指令代碼(即目
標代碼)。
(3)試簡述宏調用與子程序調用各自的作用和相互之間的區別。
答:宏調用的作用是在定義宏指令后,通過宏指令來表示對應的
程序片段。子程序調用的作用是定義一個由主程序可以用CALL指令調
用的程序。兩者的區別:宏調用比子程序調用執行速度快;子程序調
用使用CALL語句實現,在CPU執行時進行處理,而宏調用由宏匯編
軟件MASM中的宏處理程序來處理;子程序調用比宏調用節省內存空
間;宏調用比子程序調用靈活。
(4)8086匯編語言程序中段的類型有幾種?段定義語句中定位
類型、組合類型和類別各起什么作用?
答:段類型有四類:數據段、代碼段、堆棧段、附加段。定位類
型用于規定20位的段起始地址。組合類型規定該段與其他段的位置關
系。類別名的主要作用是將所有分類名相同的邏輯段組成一個段組。
3.根據題意定義變量
(1)將字節數據12H,567H存放在變量DATA1的存儲單元中。
DATA1DW12H,567H
(2)將字節數據56H,0BCH存放在變量DATA2的存儲單元中。
DATA2DB56HQBCH
(3)在DATA3為首地址的存儲單元中連續存放字節數據5個W
6個(1,2,3),20個空單元。
DATA3DB5DUP(A),6DUP(1,2,3),20DUP(?)
(4)在STR1為首地址的存儲單元中存放字符串’HOWARE
YOU'。
STR1DB'HOWAREYOU'
4.已知某數據段經匯編后數據在存儲器中存放格式如下圖,試寫
出數據段定義。
DATA100H
(字節數據)0AH
10H
DATA204H
重
復
15
次
(字節數據)08H
08H
08H
09H
DATA377H
(字數據)65H
6CH
63H
6FH
6DH
???
解:DATA1DB00H,0AH,10H
DATA2DB15DUP(04H,3DUP(08H),09H)
DATA3DW6577H,636CH,6D6FH
5.設數據段數據定義如下。
DATASEGMENT
STRDB'GOODMORNING-;$#
ADRDW3DUP(0,2z5)
DISPDW3
DATAENDS
(1)畫出內存分配圖。
STR47H
(字節數據)4FH
4FH
44H
20H
4DH
4FH
52H
4EH
49H
4EH
47H
21H
24H
ADROOH
重
復
3
次
(字數據)00H
02H
00H
05H
00H
DISP03H
(字數據)00H
(2)分別用兩種求偏移量的指令將STR的偏移地址送BX.
解:①LEABX,STR
②MOVBXQFFSETSTR
6.寫出以下指令在匯編后目標程序中對應的指令。
7.同時對于兩條指令中分別出現的兩個AND和兩個OR是不是同
一種含義?為什么?
(1)MOVBXJ234HGT1000H對應MOVBXQFFFFH
(2)SBBDXJ024SHR3對應SBBDXQ080H
(3)ANDAL,7AND47H對應ANDAL,07
(4)ORDL,NOT(7OR54H)對應ORDLZA8
(5)MOVAX,HIGH(1000H+5)對應MOVAX,0010
(6)ADDAXZHIGH1000H+5對應ADDAX,0015
注意:匯編后顯示的立即數均為16進制數
第(3)、(4)條指令中出現的兩個AND和OR中,前面的
AND和OR是指令系統中的指令助記符,是在程序執行時進行運算的;
后面的AND和OR是邏輯運算符,是在編程過程中進行運算的,邏輯
運算對象只能是常數,其結果也是常數。
8.程序在數據段中定義的數據如下。
DATASEGMENT
VARIDB4,6
VAR2DD200DUP(?)
DATAENDS
以下三條指令分別匯編成什么?(可立即數方式表示)
(l)MOVCL,LENGTHVAR2匯編成MOVCL,C8
(2)MOVBLJYPEVARI匯編成MOVBL,01
(3)MOVBXzSIZEVAR2匯編成MOVBXQ320
注意:匯編后顯示的立即數均為16進制數
9.給定宏定義如下。
DIFMACROX,Y
MOVAX,X
SUBAX,Y
ENDM
ABSDIFMACROVI,V2,V3
LOCALNEXT
PUSHAX
DIFVI,V2
CMPAX,0
JGENEXT
NEGAX
NEXT:MOVV3,AX
POPAX
ENDM
試展開以下調用,并判定調用是否有效(展開后的指令必須符合
8086CPU指令系統要求)。
(1)ABSDIFDX,AX,CX
+PUSHAX
+MOVAXZDX
+SUBAX,AX
+CMPAX,0
+JGENEXT
+NEGAX
+NEXT:MOVCX,AX
+POPAX
(2)ABSDIF[100]/[DI],BX
+PUSHAX
+MOVAXJ100]
+SUBAXJDI]
+CMPAX,0
+JGENEXT
+NEGAX
+NEXT:MOVBX,AX
+POPAX
(3)ABSDIF[BX+SI],[BPL1OOH;調用無效。語法錯誤(立即數的使
用)。
10.寫一個宏定義,要求能把任意一個寄存器的最低位移至另一個
寄存器的最高位中。
解:宏定義如下:
SMOVMACROXI,X2
ANDXI,0001H
RORXI,1
ANDX2JFFFH
ORX2,X1
ENDM
n利用DOS功能調用從鍵盤輸入60個字符到緩沖區BUF中,
在按下ENTER鍵后在屏幕上顯示這些字符。請寫出程序段。
解:程序段如下:
DATASEGMENT
BUFDB60;用戶定義存放60個字節的緩沖區
NUMBDB?;系統填入實際輸入字符字節數
CHARSDB60DUP(?);存放輸入字符的ASCII碼值
DATAENDS
CODESEGMENT
ASSUMECS:CODEZDS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETBUF
MOVAH,0AH
INT21H
XORBX,BX
MOVBL,NUMB
MOVCHARS[BX];$,;字符串后加一個結束符
MOVDLQDH;回車
MOVAH,2
INT21H
MOVDLZOAH;換行
MOVAH,2
INT21H
MOVDX,OFFSETCHARS
MOVAH,9
INT21H
MOVAH,4cH
INT21H
CODEENDS
ENDSTART
第5章練習題
2.讀程序
(1)欲把AX寄存器的內容倒序,即D15-D0,D14-D1,…,
D0-D15,請在空格處填上正確的指令。
MOVBX,AX
MOVCX,16
AGAIN:RCLBXJ
RCRAX,1
LOOPAGAIN
(2)若要完成50-(1+2+3+4+5)的運算,并把最終運算結果轉
換成分離8421BCD碼,高位。AH,低位->AL,請在空格處填上正確
的指令。
MOVCX,5
MOVAX,50
NEXT:SUBAKCX
LOOPNEXT
AAM
(3)有一輸出設備,8位狀態端口地址為62H,最高位為時,CPU
可以向該設備的8位數據端口(地址61H)發送數據;否則,等待。
根據題意,請在空格處填上正確的指令。
WAIT:INAL,62H
TESTAL,80H
JNZWAIT
OUT61H,AL
(4)要求把源串AREA1中的100個字傳送給目的串AREA2,指針
按地址增量方向修改,請在空格處填寫正確的指令。
MOVSLOFFSETAREA1
MOVDI,OFFSETAREA2
MOVCXJ00
CLD
REPMOVSW
2.編程題
(1)試編寫一程序,把數組STRING中存放的20個8位二進制
數分成正數數組和負數數組,并統計正數、負數和零的個數,結果分
別存放在P、M、Z三個單元。
DATASEGMENT
STRINGDB20DUP(?)
POSIDB20DUP(?)
NEGADB20DUP(?)
PDBOOH
MDBOOH
ZDBOOH
DATAENDS
CODESEGMENT
ASSUMECS:CODEZDS:DATA
START:MOVAX,DATA
MOVDS,AX
XORBX,BX
MOVSI,BX
MOVDLBX
MOVCX,20
LP:MOVALZSTRING[BX]
CMPALZO
JGEPl
MOVNEGA[DI],AL
INCDI
INCM
JMPNEXT
PUNEP2
INCZ
JMPNEXT
P2:MOVPOSI[SI],AL
INCSI
INCP
NEXT:INCBX
LOOPLP
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
(2)試編寫一程序,完成10個一位十進制數累加,累加結果以
分離式BCD碼形式存放于AH(高位),AL(低位)寄存器。
DATASEGMENT
STRINGDB'1112220004'
DATAENDS
CODESEGMENT
ASSUMECS:CODEZDS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVCXz10
XORBX,BX
MOVAX,0
LP:ADDAL,STRING[BX]
AAA
INCBX
LOOPLP
MOVAH,4cH
INT21H
CODEENDS
ENDSTART
(3)試編寫一程序,將2個字節的二進制數,變換成用ASCII碼
表示的四位十六進制數(用四字節表示)。
DATASEGMENT
NUMDW12345;0?65535
ASCDB4DUP(?)
DATAENDS
CODESEGMENT
ASSUMECS:CODEZDS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVBX,NUM
LEADIZASC
MOVCX/0404H
LP1:ROLBX,CL
MOVDLZBL
ANDDLZOFH
CMPDLJO
JBLP2
ADDDL,7
LP2:ADDDL,'O'
MOV[DI]ZDL
INCDI
DECCH
JNZLP1
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
(4)試用串操作指令SCAS,在10個字節的數據塊BLOCK中,
搜索與2EH相等的數,若找到,則將該數地址存放于ADR中,并在
SIGNAL單元中作標記OFFH;否則,SIGNAL為00H。
DATASEGMENT
BLOCKDB26H,27H,28H,29H,2AH,2BH,2cH,2DH,2EH,2FH
ADRDW?
SIGNALDB?
DATAENDS
CODESEGMENT
ASSUMECS:CODEZDS:DATAZES:DATA
START:MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVDI,OFFSETBLOCK
CLD
MOVCXJO
MOVALZ2EH
REPNZSCASB
JNZAA
MOVSIGNAL,OFFH
DECDI
MOVADRZDI
JMPNEXT
AA:MOVSIGNAL,OOH
NEXT:MOVAH,4cH
INT21H
CODEENDS
ENDSTART
(5)請按如下說明編寫子程序。
子程序功能:把用ASCII碼表示的兩位十進制數轉換為壓縮BCD
碼。
入口參數:DH:十位數的ASCII碼,DL:個位數的ASCII碼。
出口參數:AL:對應壓縮BCD碼。
TRANSPROCNEAR
PUSHCX
PUSHDX
MOVCL,4
SUBDH,'O'
SUBDL,O
SHLDHZCL
ADCDL,DH
MOVALZDL
POPCX
POPDX
RET
TRANSENDP
(6)編寫一程序,計算100個16位正整數之和,如果和不超過
16位字的范圍(0~65535),則保存其和到SUM,如超過則顯示
"Overflow!〃。
DATASEGMENT
DAT1DW25DUP(OO34H,O345H/OO0OH/OOOOH)
SUMDW?
STRINGDB'Overflow!'QDHQAH;$'
DATAENDS
CODESEGMENT
ASSUMECS:CODEZDS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVSLOFFSETDAT1
MOVBXQFFSETSUM
MOVCXJ00
XORAX,AX
LI:ADCAX,[SI]
JCOVER
INCSI
INCSI
LOOPLI
MOV[BX],AX
JMPNEXT
OVER:MOVDX,OFFSETSTRING
MOVAH,9
INT21H
NEXT:MOVAH,4cH
INT21H
CODEENDS
ENDSTART
3.問答題
(1)匯編語言程序的開發有哪些步驟,其工作過程需哪些軟件來
實現?可產生哪些輸出文件?
答:步驟如下:1)明確任務,確確算法2)繪制流程圖3)編寫
匯編語言程序4)上機調試程序。
編寫匯編語言程序時:1)需要EDIT.COM軟件建立源程序文件,
并保存為.ASM文件。2)需MASM.EXE軟件匯編源程序文件,可產
生擴展名為OBJ的目標文件、擴展名為LST的列表文件和擴展名為
CRF的對照文件。3)需要LINK.EXE軟件與目標文件連接,可產生擴
展名為EXE的可執行文件、擴展名為MAP的列表文件和擴展名為LIB
的庫文件。
上機調試時,需要DEBUG.EXE調試軟件。
(2)程序結束軟中斷有哪幾種實現方法?有什么區別?
答:程序結束軟中斷有三種實現方法:INT20H、INT21H、INT
27H。
INT20H的功能是終止當前進程,關閉所有打開的文件,清除磁
盤緩沖區,返回控制臺的命令接收狀態,實現程序退出時,不需要任
何入口參數。INT21H用于系統功能調用,該軟中斷包括3種情況:
無返回程序結束(入口參數AH=O,無返回號)、程序結束并駐留
(入口參數AH=31H,返回號AL=1)、帶返回程序結束(入口參數
AH=4CH,返回號AL=1)oINT27H用于駐留退出,入口參數
DX=XX設置駐留程序的長度。
(3)用匯編語言編程序有哪幾種結構?
答:順序結構;分支結構;循環結構;子程序結構。
(4)子程序結構中,主程序和子程序之間參數傳遞有哪幾種方法?
答:參數傳遞的實現方案可分為:寄存器傳送、固定緩沖區傳送、
地址表傳送、堆棧傳送。
第6章練習題
1.選擇題
(DC,(2)B,(3)C
2.填空題
(1)隨機存取存儲器,丟失,只讀存儲器,不會丟失
(2)電荷,電荷泄露,刷新
(3)128,10
(4)48000H,4FFFFH,32K
3.簡答題
(1)半導體存儲器的主要性能指標有哪些?
答:半導體存儲器的主要性能指標有:存儲容量、存取速度、功
耗、可靠性、價格。
(2)存儲器芯片由哪幾部分組成?各部分功能是什么?
答:存儲芯片由存儲矩陣、地址譯碼器、存儲器控制電路、三態
雙向緩沖器組成。存儲矩陣的功能是把能夠寄存二進制信息的基本電
路的集合體的這些基本存儲電路按陣列形式排列和編址;地址譯碼器
的功能是將CPU發送來的地址信號進行譯碼后產生地址編碼,以便選
中存儲矩陣中的某一個或某幾個基本存儲電路,使其在存儲器控制邏
輯的控制下進行讀/寫操作;存儲器控制電路通過相應的信號引腳,接
收來自CPU或外部電路的控制信號,經組合變換,產生芯片內部各部
分的控制信號;三態雙向緩沖器的作用是使組成半導體RAM的各個存
儲芯片很方便地與系統數據總線相連接。
(3)簡述SRAM和DRAM的各自特點。
答:SRAM的特點為速度快,不必配合內存刷新電路,可提高整
體的工作效率,但集成度低,功耗較大,相同的容量體積較大。
DRAM的特點是需要刷新來補充電荷。
(4)DRAM為什么要刷新?存儲系統如何進行刷新?
答:DRAM由電容組成,通過高低電平表示存儲的狀態,由于是
電容器作為載體,產生電荷泄露,故需要刷新來補充電荷。刷新按行
進行,即每當CPU或外部電路對動態存儲器提供一個行地址信號,使
存儲體中的某一行被選中,同時令列地址無效,即關閉所有的列選通
道,這樣,該行中所有基本存儲電路的數據將在內部讀出,并在相應
列刷新放大器作用下被放大和刷新。
(5)什么是高速緩沖器?與主體有什么關系?基本工作原理是什
么?
答:高速緩沖器為緩存,位于CPU與內存之間的臨時存儲器,以
提高CPU數據輸入輸出速率。高速緩沖器的原理是根據局部性原理,
把主存儲器中訪問概率高的內容存放在緩沖器中,當CPU需要讀取數
據時就首先在緩沖器中查找是否有所需內容,如果有則直接從緩沖器
中讀取;若沒有則再主存中讀取該數據,然后同時送往CPU的高速緩
沖器。
3.一個5124的RAM芯片需要多少根地址線?多少根數據線?若
要組成一個64Ki的存儲器,需要多少個RAM芯片?多少芯片組?多
少根芯片組選擇地址線?
答:一個5124的RAM芯片需要9根地址線,4根數據線。組成
一個64K&的存儲器需要256個RAM芯片,128個芯片組,7根芯片
組選擇地址線。
4.由Intel2164DRAM芯片組成一個64K8的存儲器,共需多少個
DRAM芯片?若進行刷新操作,需要幾次才能刷新完畢?
答:組成一個64K&的存儲器,共需8個DRAM芯片。需要128
次才能刷新完畢,7個觸發器。
第7章練習題
1.選擇題
(1)B(2)A.B(3)C
2.填空題
(1)01B0H,01B3H,4
(2)8,36
(3)中斷請求、中斷判優、中斷響應、中斷服務、中斷返回
3.問答題
(1)試說明8086CPU對INTR的響應過程。若某外部中斷源通
過8259A的IR4接入8086CPU系統,試說明應做哪幾個方面的工作
才能使該中斷正常工作。
答:響應過程:1)CPU在每執行完一條指令后,自動檢測是否有
INTR中斷請求;2)判斷是否響應INTR線上的中斷請求;3)確定中
斷向量地址;4)保存斷點;5)執行中斷服務程序;6)中斷返回。
若外部中斷源通過IR4接入8086系統,應做:1)設置8259A的
初始化命令字和相關操作命令字;2)系統開中斷。
(2)說明軟中斷與子程序調用在使用時有何區別。
答:軟中斷是由CPU根據程序的某條指令或者程序員對標志寄存
器中某個標志位的設置而產生的;子程序調用是由CALL指令引起的。
(3)采用DMA方式為什么能進行高速數據傳送?
答:DMA是一種直接存儲器存取方式,利用這種方式,可以在沒
有CPU干預的情況下,存儲器與外設之間或存儲器與存儲器之間進行
直接數據傳輸,這樣可以大大提高數據傳輸的速度。
(4)簡述DMA控制器8237A的工作周期。
答:8237A在系統中的工作狀態可分為兩種工作周期:DMA空閑
周期和DMA有效周期。
當8237A的所有通道均沒有DMA請求時,芯片即處于空閑周期,
此時8237A作為普通接口芯片受CPU控制,處于從屬狀態。當8237A
采樣到某通道有DMA請求,即向CPU發總線請求信號,一旦獲得總
線控制權則由空閑周期進入有效周期,此時8237A作為系統的主控芯
片,處于主控狀態.
(5)8237A在進行單字節方式DMA傳送和塊傳送時,有什么區
別?
答:1)單字節傳送方式:每次DMA操作僅傳送一個字節數據,傳
送后當前地址寄存器加1或減1,并將當前字節計數器減1,保持請求
信號HQR無效,交出總線控制權,隨后再次請求DMA傳送下一個字
節數據,如此往復直到當前字節計數器減為OFFFFH時終止。
2)數據塊傳送方式:8237A一旦獲得總線控制權,便開始連續傳
送數據,每傳送一個字節就自動修改地址,并使要傳送的字節數減1,
直到當前字節計數器減為OFFFFH時產生終止信號,或者受到外部的信
號時結束傳送,交出總線權。
4.下面是一個對8259A進行初始化的程序,請加上注釋,并具體
說明各初始化命令字的含義。
MOVAL,13H;設置ICW1命令字邊沿觸發方式,單片8259A
需要設置ICW4
MOVDX,40H
OUTDXZAL
INCDX;DX增1,為設置下面的命令字做準備
MOVALz08H;設置ICW2中斷類型號為從08H~OFH
OUTDX,AL
MOVAL,09H;設置ICW4為8088模式,一般E0I緩沖方式,
全嵌套方式
OUTDX,AL
系統分配給8259A的I/O地址為40H和41H
5.設8259A的偶地址是1000H,試編寫屏蔽8259A中的IR3,
IR4和IR6中斷請求的程序。
MOVDX,1000H;指向8259A的偶地址
MOVALZO1O11OOOB;使11\/m的口3、D4、D6位為1
OUTDX,AL
8259A的OCW1可以實現中斷源的屏蔽與開放。
6.某8086CPU系統的中斷系統由兩片8259A級聯組成,從片聯
在主片的IR3上,主、從8259A的IR5上各接有一個外部中斷源,其
中斷類型碼分別為ODH,95H。假設它們的中斷入口地址均在同一段
中,段基址為1000H,偏移地址分別是200H,300H;所有中斷都采
用邊沿觸發方式、全嵌套方式、正常EOI結束方式。
(1)寫出主、從8259A中斷向量地址的范圍;
(2)試編寫全部初始化程序。
解:(1)主8259A的中斷類型碼的范圍為:O8HOFH,中斷向量地址的
范圍為:20H3cH。從8258A的中斷類型碼的范圍:90H97H,中斷向量期止范圍
為:240H25cH。
(2)主8259A初始化程序段
MOVAX,00H
MOVDS,AX;中斷向量表的段地址為0000H
MOVBXQDH4;取中斷向量地址
MOVAX,200H;取中斷向量并送入中斷向量表
MOV[BX]fAX
MOVAX,1000H
MOV[BX+2LAX
MOVALQOOIOOOIB;ICW1邊沿愈蟲發,級聯方式,寫入ICW4
OUT30HtAL
MOVAL,08H;ICW2中斷類型號范圍
OUT31HfAL
MOVALfOOOOOlOOB;ICW3從片聯在主片的IR3上
OUT31HfAL
MOVAL^OOUIOIB;ICW4全嵌套方式,正常EOI結束方式
OUT31H,AL
從8259A初始化程序段
MOVAXQ0H
MOVDS,AX;中斷向量表的段地址為0000H
MOVBX,95HA;取中斷向量地址
MOVAX,300H;取中斷向量并送入中斷向量表
MOV[BX],AX
MOVAXJ000H
MOV[BX+2],AX
MOVAL^OOIOOOIB
OUT36H,AL
MOVALz90H
OUT37HZAL
MOVAL,00000011
OUT37H,AL
MOVAL,0001
7.設計8237A的初始化程序。要求:通道0工作于快傳送寫模式,
地址加1變化,允許自動預置功能;通道1工作于單字節傳送,地址
減1變化,禁止自動預置功能;通道2、通道3和通道1工作于相同
的方式。8237A的DACK為高電平有效,DREQ為低電平有效,采用
循環優先級方式啟動8237A工作。
MOVDXQMA+0DH;DMA+0DH為復位命令端口地址
MOVAL,0;發復位命令
OUTDX,AL
MOVALJ0110100B;設置通道0方式字
MOVDXQMA+0BH
OUTDX,AL
MOVALZO1OO1OO1B;設置通道1方式字
MOVDX,DMA+0BH
OUTDXZAL
MOVAL^IOOIOIOB;設置通道2方式字
MOVDX,DMA+0BH
OUTDX,AL
MOVAL,01001011B;設置通道3方式字
MOVDX,DMA+0BH
OUTDXZAL
MOVALJOOIOOOOB;設置控制字
MOVDX,DMA+08H
OUTDX,AL
8.試編寫程序段,要求利用8237A在存儲區的兩個區域BUF1和
BUF2之間直接傳送數據,傳送的數據長度為64KB
MOVAL,04H
MOVDX,DMA+08H;控制寄存器端口
OUTDX,AL;設控制字,禁止8237A工作
MOVDXQMA+0DH;復位命令端口
OUTDX,AL;發復位命令
MOVDXQMA+00H;通道0地址寄存器端口
MOVAX,BUF1;源數據區首址
OUTDX,AL;寫入地址彳氐8位
MOVAL,AH
OUTDX,AL;寫入地址高8位
MOVDXQMA+02H;通道1基地址與當前地址
MOVAX,BUF2;目的數據區首址
OUTDX,AL;寫入地址彳氐8位
MOVAL,AH
OUTDX,AL;寫入地址高8位
MOVDXQMA+03H;通道1基計數與當前字節計數
MOVAX,OFFFFH
OUTDX,AL;寫入初始值低8位
MOVALZAH
OUTDX,AL;寫入初始值高8位
MOVDX,DMA+0CH;先/后觸發器端口
OUTDXZAL;清先/后觸發器端口
MOVDX,DMA+0BH;方式寄存器端口
MOVAL,88H
OUTDX,AL;設通道0方式字,數據塊讀增量
MOVDXQMA+0CH
OUTDXZAL;清先/后觸發器端口
MOVDXQMA+0BH;方式寄存器端口
MOVAL,85H
OUTDX,AL;設通道1方式字,數據塊寫增量
MOVDX,DMA+0CH
OUTDX,AL;清先/后觸發器端口
MOVDXQMA+OFH;主屏蔽字端口
MOVAL,0CH
OUTDXZAL;屏蔽通道2、3
MOVDXQMA+OCH
OUTDX,AL;清先/后觸發器端口
MOVDX,DMA+08H;控制寄存器端口
MOVALz01H
OUTDX,AL;設控制字,允許存儲器到存儲器,啟動8237A工作
MOVDXQMA+OCH
OUTDX,AL;清先/后觸發器端口
MOVDX,DMA+09H;請求寄存器端口
MOVAL,04H
OUTDX,AL;向通道0發出DMA請求
MOVDXQMA+08H;讀狀態寄存器端口
AA1:INAL,DX
JZAA1
MOVDXQMA+OCH
OUTDX,AL;清先/后觸發器端口
MOVDX,DMA+09H;請求寄存器端口
MOVAL,OOH
OUTDX,AL;通道0撤銷DMA請求
MOVDXQMA+OCH
OUTDX,AL;清先/后觸發器端口
MOVDXQMA+08H;設控制字
MOVAL,04H
OUTDX,AL;禁止8237A工作
HLT
第8章練習題
1.選擇題
(1)C(2)B
2.填空題
設某接口的狀態端口地址為100H,狀態位從D7位輸入,數據端
口的地址為200H,輸入數據的總字節數為200,輸入數據段放在內存
單元的首地址為300,查詢式輸入數據的程序段如下。
MOVSL300
MOVCX,200
INPUT:INALJOOH
TESTAL,80H
JZINPUT
INAL200H
MOV[SI]ZAL
INCSI
LOOPINPUT
3.問答題
(1)當接口電路與系統總線相連接時,為什么要遵循〃輸入要經
過三態,輸出要鎖存〃的原則?
答:接口電路是介于主機和外設之間的一種緩沖電路,它使外設
與總線隔離,起緩沖、暫存數據的作用。因為數據總線是各種設備以
及存儲器傳送數據的公共總線,任何設備都不允許長期占用數據總線,
而僅允許被選中的設備在讀/寫周期中享用數據總線,這就需要接口
電路為輸入設備提供三態緩沖作用,只在讀/寫周期中為被選中的設
備開放與系統數據總線
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教部編版六年級上冊京劇趣談教案配套
- 七年級信息技術上冊 第十一課時資源管理工具(一)教學設計
- 2024吉林省能源投資集團有限責任公司招聘33人筆試參考題庫附帶答案詳解
- 成品放行規程培訓
- 人教統編版必修 上冊虞美人教案及反思
- 信息技術與數學學科的融合教學-用Python作二次函數圖像教學設計2024-2025學年人教版九年級上冊第22章
- 2024內蒙古中鋁集團包頭鋁業有限公司新能源項目開招聘47人筆試參考題庫附帶答案詳解
- 廠級安全教育培訓
- 電力安規變電部分培訓
- 一年級語文上冊 課文 3 11《項鏈》教學設計 新人教版
- 風電機組吊裝作業安全管理
- 世界500強CFO的財務管理筆記2
- 第六屆全國物流設計大賽一等獎作品
- LY/T 3302-2022人造板生產木粉塵燃爆防控技術規范
- 函數的單調性說課課件-中職技工學校中國勞動社會保障出版社數學第七版上冊
- 高考與四級英語的差距詞匯
- 水土保持工程質量評定規程sl3362006
- 提升員工質量意識培訓課件
- 苯乙酸安全技術說明書(msds)
- 【建模教程】-建模-數學建模夏令營
- DB37-T 2040-2023 金屬礦山尾礦干排安全技術規范
評論
0/150
提交評論