版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
千里之行,始于足下讓知識(shí)帶有溫度。第第2頁(yè)/共2頁(yè)精品文檔推薦【良心出品】匯編語(yǔ)言期末考試試題及答案匯編語(yǔ)言模擬試題及答案
一,單項(xiàng)挑選題(在每小題的四個(gè)備選答案中,選出一個(gè)正確的答案,并將其號(hào)碼填在題干后的括號(hào)內(nèi),每小題1分,共20分)
1.指令JMPFARPTRDONE屬于參考答案為:C
A.段內(nèi)轉(zhuǎn)移直接尋址
B.段內(nèi)轉(zhuǎn)移間接尋址
C.段間轉(zhuǎn)移直接尋址
D.段間轉(zhuǎn)移間接尋址
[解析]略
2.下列講述正確的是參考答案為:C
A.對(duì)兩個(gè)無(wú)符號(hào)數(shù)舉行比較采納CMP指令,對(duì)兩個(gè)有符號(hào)數(shù)比較用CMPS指令
B.對(duì)兩個(gè)無(wú)符號(hào)數(shù)舉行比較采納CMPS指令,對(duì)兩個(gè)有符號(hào)數(shù)比較用CMP指令
C.對(duì)無(wú)符號(hào)數(shù)條件轉(zhuǎn)移采納JAE/JNB指令,對(duì)有符號(hào)數(shù)條件轉(zhuǎn)移用JGE/JNL指令
D.對(duì)無(wú)符號(hào)數(shù)條件轉(zhuǎn)移采納JGE/JNL指令,對(duì)有符號(hào)數(shù)條件轉(zhuǎn)移用JAE/JNB指令
[解析]對(duì)于無(wú)符號(hào)數(shù)和有符號(hào)數(shù)的比較都采納CMP指令;
CMPS指令是串比較指令;
對(duì)兩個(gè)無(wú)符號(hào)數(shù)的條件轉(zhuǎn)移指令應(yīng)是:JAE、JNB、JBE、JNA;
對(duì)兩個(gè)有符號(hào)數(shù)的條件轉(zhuǎn)移指令應(yīng)是:JGE、JNL、JLE、JNG。
3.一個(gè)有128個(gè)字的數(shù)據(jù)區(qū),它的起始地址為12ABH:00ABH,請(qǐng)給出這個(gè)數(shù)據(jù)區(qū)最末一個(gè)字單元的物理地址是參考答案為:C
A.12CSBH
B.12B6BH
C.12C59H
D.12BFEH
[解析]末字與首字相隔(128-1=)127個(gè)字,且每個(gè)字占用2個(gè)字節(jié),因此末字單元的物理地址應(yīng)為:
首字單元的物理地址+(128-1)×2
即12ABH×10H+00ABH+(128-1)×2=12C59H。
4.在下列指令的表示中,不正確的是參考答案為:C
A.MOVAL,[BX+SI]
B.JMPSHORTDONI
C.DEC[BX]
D.MULCL
[解析]當(dāng)惟獨(dú)一個(gè)存儲(chǔ)器操作數(shù)時(shí),這個(gè)操作數(shù)的類型不明確,例如選項(xiàng)C中的[BX],沒有明確的說(shuō)明拜訪該存儲(chǔ)單元的類型,此時(shí)存儲(chǔ)器操作數(shù)就必需需用類型說(shuō)明,如
DECBYTEPTR[BX]或DECWORDPTR[BX]
但是在題目的選項(xiàng)C中,沒有指出存儲(chǔ)器操作數(shù)類型,所以該指令是不正確的;而其它選項(xiàng)中的指令均是正確的。
5.在舉行二重循環(huán)程序設(shè)計(jì)時(shí),下列描述正確的是參考答案為:A
A.外循環(huán)初值應(yīng)置外循環(huán)之外;內(nèi)循環(huán)初值應(yīng)置內(nèi)循環(huán)之外,外循環(huán)之內(nèi)
B.外循環(huán)初值應(yīng)置外循環(huán)之內(nèi);內(nèi)循環(huán)初值應(yīng)置內(nèi)循環(huán)之內(nèi)
C.內(nèi)、外循環(huán)初值都應(yīng)置外循環(huán)之外
D.內(nèi)、外循環(huán)初值都應(yīng)置內(nèi)循環(huán)之外,外循環(huán)之內(nèi)
[解析]循環(huán)參數(shù)置初值,應(yīng)在進(jìn)入循環(huán)以前給出。
6.條件轉(zhuǎn)移指令JNE的測(cè)試條件為參考答案為:A
A.ZF=0
B.CF=0
C.ZF=1
D.CF=1
[解析]略。
7.8086CPU在基址加變址的尋址方式中,變址寄存器可以為參考答案為:D
A.BX或CX
B.CX或SI
C.DX或SI
D.SI或DI
[解析]略
8.已知BX=2000H,SI=1234H,則指令MOVAX,[BX+SI+2]的源操作在()中。參考答案為:A
A.?dāng)?shù)據(jù)段中偏移量為3236H的字節(jié)
B.附加段中偏移量為3234H的字節(jié)
C.?dāng)?shù)據(jù)段中偏移量為3234H的字節(jié)
D.附加段中偏移量為3236H的字節(jié)
[解析]指令中的源操作數(shù)的尋址方式是相對(duì)基址變址尋址,且因?yàn)槠渲械幕芳拇嫫鞑杉{的是BX,所以源操作數(shù)是在數(shù)據(jù)段中,其偏移量為:
BX+SI+2=2000H+1234H+2=3236H
9.執(zhí)行如下程序:
MOVAX,0
MOVBX,1
MOVCX,100
A:ADDAX,BX
INCBX
LOOPA
HLT
執(zhí)行后(BX)=參考答案為:C
A.99
B.100
C.101
D.102
[解析]1)在進(jìn)入循環(huán)之前,有三條指令分離初始化寄存器:AX為0、BX為1、CX為100;
2)因?yàn)檠h(huán)的控制部分采納的是LOOP指令,該指令有使CX減1,并判
斷其是否為0的功能,所以可知該循環(huán)的執(zhí)行次數(shù)為100次;
3)循環(huán)體的主要功能是每次循環(huán)使AX中的內(nèi)容累加BX的內(nèi)容,并使BX的內(nèi)容加1。
4)直到最后一次(即第100次)循環(huán)時(shí),加到AX中的BX的內(nèi)容為100,且使BX加1,即變?yōu)?01后退出循環(huán)體。所以當(dāng)執(zhí)行完該段程序后,BX的內(nèi)容為101。
5)該段程序的功能是(AX)=1+2+……+100=5050
10.上題的程序執(zhí)行后(AX)=參考答案為:B
A.5000
B.5050
C.5100
D.5150
[解析]請(qǐng)參看上題中的分析。
正確答案:B。
11.對(duì)于下列程序段:
AGAIN:MOVAL,[SI]
MOVES:[DI],AL
INCSI
INCDI
LOOPAGAIN
也可用______指令完成同樣的功能。參考答案為:A
A.REPMOVSB
B.REPLODSB
C.REPSTOSB
D.REPESCASB
[解析]該段程序的功能是將SI所指向的數(shù)據(jù)段中的數(shù)據(jù)挨次傳送給DI所指向的附加段的一段數(shù)據(jù)區(qū)中,并且每次傳送一個(gè)字節(jié),即實(shí)現(xiàn)了字節(jié)串傳送的功能,所以也可以使用REPMOVSB指令來(lái)完成同樣的功能。
12.下面指令序列執(zhí)行后完成的運(yùn)算,正確的算術(shù)表達(dá)式應(yīng)是
MOVAL,BYTEPTRX
SHLAL,1
DECAL
MOVBYTEPTRY,AL參考答案為:D
A.y=x2+1
B.x=y2+1
C.x=y2-1
D.y=x2-1
[解析]該段程序的第一條指令的功能是將X傳送給AL;
其次條指令的功能是將AL的內(nèi)容左移1位,即使得AL的內(nèi)容擴(kuò)大2倍;
第三條指令的功能是使AL的內(nèi)容減1;
第四條指令的功能是將AL傳送給Y;
綜上所述該程序完成的運(yùn)算是Y=2X-1。
13.在一段匯編程序中多次調(diào)用另一段程序,用宏指令比用子程序?qū)崿F(xiàn)起來(lái)。參考答案為:B
A.占內(nèi)存空間小,但速度慢
B.占內(nèi)存空間大,但速度快
C.占內(nèi)存空間相同,速度快
D.占內(nèi)存空間相同,速度慢
[解析]1)宏指令簡(jiǎn)化程序的書寫,不節(jié)約程序存儲(chǔ)空間,但執(zhí)行時(shí)光比子程序短。
2)子程序簡(jiǎn)化程序的書寫,也節(jié)約程序的存儲(chǔ)空間,但執(zhí)行時(shí)光比宏指令長(zhǎng)。
14.在程序執(zhí)行過(guò)程中,IP寄存器中始終保存的是參考答案為:B
A.上一條指令的首地址
B.下一條指令的首地址
C.正在執(zhí)行指令的首地址
D.需計(jì)算有效地址后才干確定地址
[解析]在程序運(yùn)行過(guò)程中,它始終指向下一條指令的首地址,它與CS代碼段寄存器聯(lián)合確定下一條指令的物理地址。
15.PSW寄存器中共有______位條件狀態(tài)位,有______位控制狀態(tài)位。參考答案為:A
A.6、3
B.3、6
C.8、4
D.4、8
[解析]PSW有6位條件狀態(tài)位:AF、CF、ZF、PF、SF、OF;
PSW有3位控制狀態(tài)位:IF、TF、DF
16.下列指令執(zhí)行時(shí)出錯(cuò)的是參考答案為:A
A.ADDBUF1,BUF2
B.JMPDWORDPTRDAT[BX]
C.MOVAX,[BX+DI]NUM
D.TESTAL,08H
[解析]ADD指令的兩個(gè)操作數(shù)不能同時(shí)是存儲(chǔ)器操作數(shù),所以選項(xiàng)A中的指令是錯(cuò)誤的。
17.已知(AX)=1234H,執(zhí)行下述三條指令后,(AX)=參考答案為:DMOVBX,AX
NEGBX
ADDAX,BX
A.1234H
B.0EDCCH
C.6DCCH
D.0000H
[解析]第一條指令的功能是將AX→BX,即BX中的內(nèi)容為1234H;
其次條指令的功能是對(duì)BX求補(bǔ),即BX中的內(nèi)容變?yōu)椋?234H;
第三條指令的功能是AX+BX→AX,即1234H+(-1234H)=0→AX;
所以執(zhí)行三條指令后,AX的內(nèi)容為0。
18.在下列指令中,______指令的執(zhí)行會(huì)影響條件碼中的CF位。參考答案為:DA.JMPNEXT
B.JCNEXT
C.INCBX
D.SHLAX,1
[解析]JMP、JC指令不任何影響狀態(tài)標(biāo)志位;
INC指令執(zhí)行結(jié)果除不影響CF外,其余狀態(tài)標(biāo)志位(AF、OF、PF、SF、ZF)都受影響。
SHL指令使CF=O,OF=O,影響ZF、SF、PF標(biāo)志位,AF無(wú)定義。
19.串指令中的目的操作數(shù)地址是由______提供。參考答案為:C
A.SS:[BP]
B.DS:[SI]
C.ES:[DI]
D.CS:[IP]
[解析]略
20.將DX的內(nèi)容除以2,正確的指令是參考答案為:C
A.DIV2
B.DIVDX,2
C.SARDX,1
D.SHLDX,1
[解析]選項(xiàng)A中的的指令執(zhí)行的操作是:AX/2;
選項(xiàng)B中的的指令書寫格式不正確;
選項(xiàng)C中的的指令執(zhí)行的操作是:將DX的內(nèi)容右移一位,將使DX的內(nèi)容縮小為原先的1/2,即將DX的內(nèi)容除以2;
選項(xiàng)D中的的指令執(zhí)行的操作是:將DX的內(nèi)容左移一位,將使DX的內(nèi)容擴(kuò)大為原先的2倍,即將DX的內(nèi)容乘以2。
[解析](1)指令:SHRDX,1使DX的內(nèi)容向右移動(dòng)了一位,因此DX的內(nèi)容變?yōu)?000’0000’0101’1100B,即005CH。
(2)指令:RCRDL,1使DL的內(nèi)容向右循環(huán)帶進(jìn)位移動(dòng)了一位,DH的內(nèi)容不變,因此DX的內(nèi)容變?yōu)?000’0000’1101’1100B,即00DCH。
(3)指令:RCLDX,CL使DX的內(nèi)容向左循環(huán)帶進(jìn)位移動(dòng)了3位,因此DX的內(nèi)容變?yōu)?000’0101’1100’1100B,即05CCH。
2.寫出完成下述功能的程序段:
(1)傳送25H到AL寄存器
(2)將AL的內(nèi)容乘以2
(3)傳送15H到BL寄存器
(4)AL的內(nèi)容乘以BL的內(nèi)容
并請(qǐng)寫出最后(AX)=?
答:(1)MOVAL,25H
(2)SHLAL,1
(3)MOVBL,15H
(4)MULBL
最后,(AX)=612H=1554
[解析]1)將AL的內(nèi)容左移1位,將使它的內(nèi)容擴(kuò)大2倍,即使AL的內(nèi)容乘以2。
2)最后,AX的內(nèi)容應(yīng)為25H*2*15H=612H=1554
3.寫一程序段,求雙字長(zhǎng)數(shù)DX∶bX的相反數(shù)。
答:NEGDX
NEGAX
SBBDX,0
[解析]求雙字長(zhǎng)數(shù)DX:AX相反數(shù),即對(duì)其求補(bǔ),所以應(yīng)實(shí)現(xiàn)的操作是:
(DX:AX)←0-(DX:AX)
即0:0
-)DX:AX
將上面的算式分解后,即為對(duì)DX求補(bǔ),對(duì)AX求補(bǔ),并從DX中減去將AX求補(bǔ)時(shí)產(chǎn)生的借位。所以相應(yīng)的指令就是:
NEGDX
NEGAX
SBBDX,0
三,程序分析題(每小題6分,共36分)
1.現(xiàn)有如下程序段:
DATASEGMENTDA3EQU1234H
ORG0020HDA4EQU$-DA2
DA1DW12H,23HDA5DB31H,32H
DA2DB11H,21HDATAENDS
注重:程序是從左到右看,先把左邊的程序段看完了再看右邊的程序段。下面的程序段以相同的辦法舉行讀解。
請(qǐng)回答:(1)該程序段已占有的存儲(chǔ)字節(jié)數(shù)是多少?
(2)符號(hào)名DA4的值是多少?符號(hào)名DA5的值是多少?
答:(1)該程序段已占有的存儲(chǔ)字節(jié)數(shù)是8個(gè)字節(jié)。
(2)符號(hào)名DA4的值為2,符號(hào)名DA5的值是0026H。
[解析]1)偽指令ORG0020H,設(shè)置存儲(chǔ)單元起始偏移地址為0020H;
2)符號(hào)名DA1的值(即所對(duì)應(yīng)存儲(chǔ)單元的偏移地址)是0020H,該數(shù)據(jù)區(qū)的類型為字,有2個(gè)字?jǐn)?shù)據(jù),所以共占用4個(gè)字節(jié);
3)符號(hào)名DA2的值(即所對(duì)應(yīng)存儲(chǔ)單元的偏移地址)是0024H,該數(shù)據(jù)區(qū)的類型為字節(jié),有2個(gè)字節(jié)數(shù)據(jù),所以共占用2個(gè)字節(jié);
4)經(jīng)EQU定義的符號(hào)名DA3、DA4不占用存儲(chǔ)空間,“$”用來(lái)表示當(dāng)前地址計(jì)數(shù)器的值(0026H),可它們的值分離為DA3=1234H,DA4=2。
5)符號(hào)名DA5的值(即所對(duì)應(yīng)存儲(chǔ)單元的偏移地址)是0026H,該數(shù)據(jù)區(qū)的類型為字節(jié),有2個(gè)字節(jié)數(shù)據(jù),所以共占用2個(gè)字節(jié);
6)綜上所述,該程序段共占有的存儲(chǔ)字節(jié)數(shù)8個(gè)字節(jié)。
2.執(zhí)行下列程序段后,回答問(wèn)題。
ORG1221HMOVBX,OFFSETNUM
NUMDW12HMOVCL,BYTEPTRNUM+1
…MOVCH,TYPENUM
MOVAX,NUMHLT
請(qǐng)問(wèn):(AX)=______,(BX)=______,(CX)=______。
答:(AX)=0012H(BX)=1221H(CX)=0200H
[解析]1)指令MOVAX,NUM的功能是將NUM單元的字內(nèi)容12H傳送給AX,使得(AX)=0012H;
2)指令MOVBX,OFFSETNUM的功能是將NUM單元的偏移地址1221H傳送給BX,使得(BX)=1221H;
3)指令MOVCL,BYTEPTRNUM+1的功能是將NUM+1(1222H)單元的字節(jié)內(nèi)容(即NUM字單元的高字節(jié))00H傳送給CL,使得(CL)=00H;
4)指令MOVCL,TYTENUM的功能是將NUM字單元的類型字節(jié)數(shù)2傳送給CH,使得(CH)=02H;
5)綜合第4和第5點(diǎn),可知CX寄存器的內(nèi)容為0200H。
3.閱讀如下程序:
ADRRDBXXH,XXH,……,XXHCMPADRR[BX],0
NUMEQU$-ADRRLOOPZDON
RETTDB?JNZNEXT
…MOVBL,OFFH
MOVCX,NUMNEXT:MOVRETT,BL
MOVBX,-1HLT
DON:INCBX
請(qǐng)問(wèn):(1)該程序完成的功能是什么?
(2)程序執(zhí)行后指出RETT字節(jié)單元中的內(nèi)容是什么?
答:(1)在以ADRR為起始地址的數(shù)組中,查找第一個(gè)非0數(shù)據(jù)。
(2)若找到則將第一個(gè)非0數(shù)據(jù)在數(shù)組中的偏移量送入RETT單元中;若無(wú)非0數(shù)據(jù),則將OFFH送入RETT單元中。
[解析]1)程序的前3條指令,用于定義數(shù)據(jù):
以ADRR為起始地址的數(shù)組;
NUM的值為ADRR數(shù)組的數(shù)據(jù)個(gè)數(shù);
RETT是一個(gè)空的字節(jié)單元
2)該程序的主體是一個(gè)循環(huán),該循環(huán)的主要功能是在數(shù)組ADRR中第一個(gè)非0數(shù)據(jù)。假如是因?yàn)檎业剑瑒t將第一個(gè)非0數(shù)據(jù)在數(shù)組中的偏移量送入RETT單元中;若沒找到非0數(shù)據(jù),則將OFFH送入RETT單元中。
4.現(xiàn)有一子程序:
SUB1PROCPLUS:TESTBL,80H
TESTAL,80H(檢測(cè)AL中的數(shù)值最高位)JEEXITO
JEPLUSXCHANGE:XCHGAL,BL
TESTBL,80HEXITO:RET
JNEEXITOSUB1ENDP
JMPXCHANGE
試回答:(1)子程序的功能是什么?
(2)若調(diào)用子程序前AL=9AH,BL=77H,則返回主程序時(shí),AL=______,BL=______。
答:(1)子程序的功能是判別AL和BL中的數(shù)是否為異號(hào)數(shù),當(dāng)為異號(hào)時(shí)交換,否則不變。
(2)AL=77H,BL=9AH
[解析]1)數(shù)據(jù)是以二進(jìn)制的形式存儲(chǔ)在計(jì)算機(jī)中的。數(shù)據(jù)對(duì)應(yīng)的二進(jìn)制數(shù)的最高位是數(shù)據(jù)的符號(hào)位:若為0表示該數(shù)為正數(shù),若為1表示該數(shù)為負(fù)數(shù);
2)TESTAL,80H和TESTBL,80H指令是在測(cè)試AL和BL的最高位(即符號(hào)位)的狀態(tài)是1還是0。
3)若兩個(gè)數(shù)的最高位(即符號(hào)位)的狀態(tài)不同的時(shí)候(即兩數(shù)為異號(hào)),則執(zhí)行XCHANGE標(biāo)號(hào)所對(duì)應(yīng)語(yǔ)句,即交換AL和BL中的內(nèi)容。
4)否則若兩個(gè)數(shù)的最高位(即符號(hào)位)的狀態(tài)相同的時(shí)候(即兩數(shù)為同號(hào)),則執(zhí)行EXIT0標(biāo)號(hào)所對(duì)應(yīng)語(yǔ)句,程序結(jié)束,即AL和BL中的內(nèi)容不被。
5)所以其次問(wèn)中,AL=9AH,BL=77H:AL中的數(shù)據(jù)的最高位為1,BL中的數(shù)據(jù)的最高位為0,即兩個(gè)數(shù)為異號(hào),所以要交換AL和BL中的內(nèi)容,即AL=77H,BL=9AH。
5.閱讀程序段:
BLOCKDB20H,1FH,08H,81H,OFFH…LOP1:CMPAL,[SI+1]
RESULTDB?JNGNEXT
…MOVAL,[SI+1]
START:LEASI,BLOCKNEXT:INCSI
MOVCX,[SI]LOOPLOP1
INCSIMOVRESULT,AL
MOVAL,[SI]HLT
請(qǐng)問(wèn):(1)該程序完成的功能是什么?
(2)該程序循環(huán)的次數(shù)是多少?
答:(1)該程序完成的功能是從20H(32)個(gè)有符號(hào)數(shù)中找出最小的數(shù)送入RESULT單元中。
(2)該程序的循環(huán)次數(shù)是1FH(31)。
[解析]1)指令LEASI,BLOCK的功能是使SI指向了BLOCK數(shù)組的首單元;
2)指令MOVCX,[SI]的功能是將SI指向單元的內(nèi)容20H傳送給CX,即(CX)=20H;其后又有指令DECCX,使得CX的內(nèi)容變?yōu)?FH;再看循環(huán)體的控制部分采納的指令是LOOP,可知,該循環(huán)的執(zhí)行次數(shù)為1FH次;
3)循環(huán)體的主要功能是將AL中的內(nèi)容與[SI]所指向數(shù)組的每一個(gè)數(shù)據(jù)舉行比較,從數(shù)組中選出最小數(shù)保存在AL中。
4)因?yàn)楸容^后采納的轉(zhuǎn)移指令是JNG,所以該程序處理的明顯是一組有符號(hào)的數(shù)據(jù)。
6.閱讀如下程序段,回答所提出的問(wèn)題,假定X1,X2,XN為無(wú)符號(hào)數(shù)。
ORG100H
BLOKDWX1,X2,…,XN
COUNTEQU($-BLOLOK)/2
RESULTDWCOUNT,?
LEABX,BLOK-2
MOVCX,RESULT
XORAX,AX
GOON:ADDBX,2
CMPAX,[BX]
JAENEXT
MOVAX,[BX]
NEXT:LOOPGOON
MOVRESULT+2,AX
程序段執(zhí)行完,回答下述問(wèn)題
RESULT+2字存儲(chǔ)單元的內(nèi)容=______
BX=______
程序循環(huán)次數(shù)=______
答:RESULT+2字存儲(chǔ)單元的內(nèi)容是MAX(X1,X2,…XN)
BX=100H+2×(COUNT-1)
程序循環(huán)次數(shù)=COUNT
[解析]1)該程序段的開頭4條指令定義了以下數(shù)據(jù):
以BLOK為起始地址的字?jǐn)?shù)組,該數(shù)組首單元的偏移地址(即BLOK)為100H;
COUNT的值為BLOK字?jǐn)?shù)組的數(shù)據(jù)個(gè)數(shù);
RESULT存儲(chǔ)區(qū)的第一個(gè)字的內(nèi)容為COUNT,即BLOK字?jǐn)?shù)組的數(shù)據(jù)個(gè)數(shù);其次個(gè)字的內(nèi)容為空。
2)循環(huán)體的主要功能是從BLOK字?jǐn)?shù)組中找出最大數(shù)送入RESULT的其次個(gè)字單元中;
3)循環(huán)次數(shù)為數(shù)組中數(shù)據(jù)的個(gè)數(shù),即COUNT個(gè)。
4)當(dāng)循環(huán)結(jié)束后,BX中將存放最后一個(gè)字?jǐn)?shù)據(jù)的偏移地址:首字偏移地址+末字與首字的相隔的字節(jié)數(shù),即100H+2×(COUNT-1)。
四,程序填空題(注重:下列各小題中,每空只能填一條指令!每小題6分,共12分)
1.在表TABLE處存放著N個(gè)無(wú)符號(hào)字節(jié)數(shù),求表中前10個(gè)字節(jié)數(shù)的總和并保存在AX寄存器中。假如總和值超過(guò)AX寄存器的容量,則置AX寄存器內(nèi)容不變。請(qǐng)?jiān)诔绦蛑械目崭裉幪钊脒m當(dāng)指令使其完整。
LEABX,TABLE(2)
MOVCX,10JCEND0
MOVSUM,AXDON:INCBX
MEXT:(1)(3)
ADCAH,0ENDO:HLT
JNCDON
答:(1)ADDAL,[BX]
(2)MOVAX,SUM
(3)LOOPNEXT
[解析]1)程序的前三條指令的功能分離是:
將表TABLE的首址傳送給BX;
將循環(huán)次數(shù)傳送給計(jì)數(shù)器CX;
將AX的原值保存在SUM單元中;
以上指令實(shí)現(xiàn)了設(shè)置循環(huán)初始參數(shù)的功能。
2)標(biāo)號(hào)NEXT所對(duì)應(yīng)的第一個(gè)空白處就是循環(huán)體的第一條指令。按照題目的要求——求表中前10個(gè)字節(jié)數(shù)的總和,可知循環(huán)每次應(yīng)實(shí)現(xiàn)將表TABLE中的數(shù)據(jù)按字節(jié)加法的方式舉行累加到AL中,并且將字節(jié)加法產(chǎn)生的進(jìn)位加到AH中。所以第一個(gè)空白處應(yīng)填入指令:
ADDAL,[BX]
3)程序的第五條指令實(shí)現(xiàn)的是推斷求得的和是否超過(guò)AX寄存器的容量。
4)假如有進(jìn)位(即已超過(guò)AX寄存器的容量),則執(zhí)行其次個(gè)空白處的指令,按照題目當(dāng)浮現(xiàn)此種狀況時(shí),使AX內(nèi)容不變,即恢復(fù)其原值,因此其次個(gè)空白處應(yīng)填入指令:MOVAX,SUM。
5)假如沒有進(jìn)位(即未超過(guò)AX寄存器的容量),則轉(zhuǎn)DON。程序?qū)⑹笲X的內(nèi)容加1,即使其指向下一個(gè)表中的字節(jié)數(shù)據(jù)。接下來(lái)就應(yīng)當(dāng)將計(jì)數(shù)器CX減1,并推斷是否繼續(xù)下一次循環(huán)。因此,第三個(gè)空白處應(yīng)填入指令:LOOPNEXT。
2.BEG為起始地址的存儲(chǔ)區(qū)域中存放有100個(gè)字節(jié)數(shù)據(jù),現(xiàn)將其首、尾顛倒過(guò)來(lái),重
新排放這100個(gè)字節(jié)數(shù)據(jù)。請(qǐng)?jiān)诔绦蛑械目崭裉幪钊脒m當(dāng)?shù)闹噶钍蛊渫暾?/p>
MOVCX,32H
LEASI,BEG
MOVDI,SI
(1)
DON:MOVAL,[SI]
(2)
MOV[SI],AL
(3)
DECDI
LOOPDON
HLT
答:(1)ADDDI,99
(2)XCHGAL,[DI]
(3)INCSI
[解析]1)題目要求:將以BEG為起始地址的區(qū)域中的100個(gè)字節(jié)數(shù)據(jù)首尾顛倒存放。例如,假如原先為X1,X2,X3,…,X98,X99,X100,則首尾顛倒后將變?yōu)閄100,X99,X98,…,X3,X2,X1。
2)顛倒的辦法是:將X1與X100對(duì)調(diào)、X2與X99對(duì)調(diào)、X3與X98對(duì)調(diào)、……,即將前一半的數(shù)據(jù)與后一半相應(yīng)位置的數(shù)據(jù)對(duì)調(diào)。這個(gè)過(guò)程每次處理兩個(gè)數(shù)據(jù),所以共有(100/2=)50對(duì)數(shù)據(jù)對(duì)調(diào)。
3)按照以上分析可知,這個(gè)循環(huán)將舉行50(32H)次,每次將相應(yīng)的兩個(gè)數(shù)據(jù)對(duì)調(diào),這兩個(gè)數(shù)據(jù)可分離由兩個(gè)寄存器來(lái)指向。
4)閱讀程序可知,SI寄存器指向前一半中的某個(gè)數(shù)據(jù),DI寄存器指向后一半中對(duì)應(yīng)的數(shù)據(jù)。在循環(huán)的初始化部分,使應(yīng)計(jì)數(shù)器CX的值為50(或32H),SI指向第一個(gè)數(shù),DI指向最后一個(gè)數(shù),所以第一個(gè)空白處應(yīng)填入指令:ADDDI,99。
5)在循環(huán)體中,應(yīng)首先交換SI和DI所指向單元的內(nèi)容,然后使指針SI加1、DI減1,所以其次、三個(gè)空白處應(yīng)填入指令:
①XCHGAL,[DI]
②INCSI
五,編制程序題(第1小題6分,第2小題14分,共20分)
1.試編寫一個(gè)匯編語(yǔ)言程序,要求對(duì)鍵盤輸入的小寫字母用大寫字母顯示出來(lái)。
答:1.BEGIN:MOVAH,1
INT21H
CMPAL,’a’
JBSTOP
CMPAL,’z’
JASTOP
SUBAL,20H
MOVDL,AL
MOVAH,2
INT21H
JMPBEGIN
[解析]1)該程序設(shè)計(jì)的主體應(yīng)是一個(gè)循環(huán)——當(dāng)輸入字符的是小寫字母(a~z)時(shí),就將其轉(zhuǎn)換為大寫字母來(lái)顯示,此過(guò)程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保建筑材料供貨合同3篇
- 農(nóng)村土地租賃與鄉(xiāng)村旅游融合發(fā)展合同2篇
- 公益性崗位勞動(dòng)合同協(xié)議書(2025年度)-特殊教育支持服務(wù)3篇
- 農(nóng)村土地抵押借款合同范文(2025年)修訂版
- 二零二五年度養(yǎng)殖場(chǎng)土地租賃與農(nóng)產(chǎn)品品牌合作合同3篇
- 二零二五年度農(nóng)村房屋買賣合同協(xié)議書(含農(nóng)村產(chǎn)權(quán)交易監(jiān)管)
- 2025年度水電預(yù)埋及安裝服務(wù)合同范本(公共設(shè)施)3篇
- 2025年度養(yǎng)殖土地租賃及農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用協(xié)議3篇
- 2024年中國(guó)滌絲繡花線市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)楓木多層膠合板市場(chǎng)調(diào)查研究報(bào)告
- 某煤礦潰倉(cāng)事故專項(xiàng)安全風(fēng)險(xiǎn)辨識(shí)評(píng)估報(bào)告示例
- 【幼兒園班本課程研究文獻(xiàn)綜述4100字(論文)】
- 上頜竇瘺修補(bǔ)術(shù)課件
- 支部書記辭職申請(qǐng)書
- 現(xiàn)場(chǎng)生命急救知識(shí)與技能學(xué)習(xí)通期末考試答案2023年
- 《HSK標(biāo)準(zhǔn)教程3》第18課課件
- 聯(lián)通公司集團(tuán)大客戶業(yè)務(wù)開通項(xiàng)目管理實(shí)施細(xì)則(試行)
- 真空管太陽(yáng)能熱水工程解決方案
- 公路養(yǎng)護(hù)作業(yè)區(qū)安全設(shè)施布設(shè)規(guī)定詳細(xì)
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設(shè))采礦權(quán)出讓收益評(píng)估報(bào)告
- 初中英語(yǔ)中考專題訓(xùn)練閱讀理解-應(yīng)用文篇
評(píng)論
0/150
提交評(píng)論