版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上匯編語言模擬試題及答案一,單項(xiàng)選擇題(在每小題的四個(gè)備選答案中,選出一個(gè)正確的答案,并將其號碼填在題干后的括號內(nèi),每小題1分,共20分) 1指令JMP FAR PTR DONE屬于參考答案為:C A段內(nèi)轉(zhuǎn)移直接尋址 B段內(nèi)轉(zhuǎn)移間接尋址 C段間轉(zhuǎn)移直接尋址 D段間轉(zhuǎn)移間接尋址 解析略 2下列敘述正確的是參考答案為:C A對兩個(gè)無符號數(shù)進(jìn)行比較采用CMP指令,對兩個(gè)有符號數(shù)比較用CMPS指令 B對兩個(gè)無符號數(shù)進(jìn)行比較采用CMPS指令,對兩個(gè)有符號數(shù)比較用CMP指令 C對無符號數(shù)條件轉(zhuǎn)移采用JAE/JNB指令,對有符號數(shù)條件轉(zhuǎn)移用JGE/JNL
2、指令 D對無符號數(shù)條件轉(zhuǎn)移采用JGE/JNL指令,對有符號數(shù)條件轉(zhuǎn)移用JAE/JNB指令 解析對于無符號數(shù)和有符號數(shù)的比較都采用CMP指令; CMPS指令是串比較指令; 對兩個(gè)無符號數(shù)的條件轉(zhuǎn)移指令應(yīng)是:JAE、JNB、JBE、JNA; 對兩個(gè)有符號數(shù)的條件轉(zhuǎn)移指令應(yīng)是:JGE、JNL、JLE、JNG。 3一個(gè)有128個(gè)字的數(shù)據(jù)區(qū),它的起始地址為12ABH:00ABH,請給出這個(gè)數(shù)據(jù)區(qū)最末一個(gè)字單元的物理地址是參考答案為:C A12CSBH B12B6BH C12C59H D12BFEH 解析末字與首字相隔(1281)127個(gè)字,且每個(gè)字占用2個(gè)字節(jié),因此末字單元的物理地址應(yīng)為: 首字單元的物
3、理地址(1281)×2 即 12ABH×10H00ABH(1281)×212C59H。 4在下列指令的表示中,不正確的是參考答案為:C AMOV AL,BX+SI BJMP SHORT DONI CDEC BX DMUL CL 解析當(dāng)只有一個(gè)存儲(chǔ)器操作數(shù)時(shí),這個(gè)操作數(shù)的類型不明確,例如選項(xiàng)C中的BX,沒有明確的說明訪問該存儲(chǔ)單元的類型,此時(shí)存儲(chǔ)器操作數(shù)就必須需用類型說明,如 DEC BYTE PTR BX 或 DEC WORD PTR&
4、#160;BX 但是在題目的選項(xiàng)C中,沒有指出存儲(chǔ)器操作數(shù)類型,所以該指令是不正確的;而其它選項(xiàng)中的指令均是正確的。 5在進(jìn)行二重循環(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的測試條件為參考答案為:A AZF=0 BCF0 CZF=1 DCF=1 解析略。 78086CPU在基址加變址的尋址方式中,變址寄存器可以為參考答案為:D
5、ABX或CX BCX或SI CDX或SI DSI或DI 解析略 8已知BX=2000H,SI=1234H,則指令MOV AX,BX+SI+2的源操作在( )中。參考答案為:A A數(shù)據(jù)段中偏移量為3236H的字節(jié) B附加段中偏移量為3234H的字節(jié) C數(shù)據(jù)段中偏移量為3234H的字節(jié) D附加段中偏移量為3236H的字節(jié) 解析指令中的源操作數(shù)的尋址方式是相對基址變址尋址,且由于其中的基址寄存器采用的是BX,所以源操作數(shù)是在數(shù)據(jù)段中,其偏移量為: BX+SI+2=2000H+1234H+2=3236H 9執(zhí)行如下程序: MOV AX,0 MOV BX,1 MO
6、V CX,100 A:ADD AX,BX INC BX LOOP A HLT 執(zhí)行后(BX)=參考答案為:C A99 B100 C101 D102 解析1)在進(jìn)入循環(huán)之前,有三條指令分別初始化寄存器:AX為0、BX為1、CX為100; 2)由于循環(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)體。所以
7、當(dāng)執(zhí)行完該段程序后,BX的內(nèi)容為101。 5)該段程序的功能是(AX)121005050 10上題的程序執(zhí)行后(AX)=參考答案為:B A5000 B5050 C5100 D5150 解析請參看上題中的分析。 正確答案:B。11對于下列程序段: AGAIN:MOV AL,SI MOV ES:DI,AL INC SI INC DI LOOP AGAIN 也可用_指令完成同樣的功能。參考答案為:A AREP MOVSB BREP LODSB CREP STOSB DREPE SCASB 解析該段程序的功能是將
8、SI所指向的數(shù)據(jù)段中的數(shù)據(jù)順序傳送給DI所指向的附加段的一段數(shù)據(jù)區(qū)中,并且每次傳送一個(gè)字節(jié),即實(shí)現(xiàn)了字節(jié)串傳送的功能,所以也可以使用REP MOVSB指令來完成同樣的功能。 12下面指令序列執(zhí)行后完成的運(yùn)算,正確的算術(shù)表達(dá)式應(yīng)是 MOV AL,BYTE PTR X SHL AL,1 DEC AL MOV BYTE PTR Y,AL參考答案為:D Ay=x2+1 Bx=y2+1 Cx=y2-1 Dy=x2-1 解析該段程序的第一條指令的功能是將X傳送給AL; 第二條指令的功能是將AL的內(nèi)容左移1位,即使得A
9、L的內(nèi)容擴(kuò)大2倍; 第三條指令的功能是使AL的內(nèi)容減1; 第四條指令的功能是將AL傳送給Y; 綜上所述該程序完成的運(yùn)算是Y=2X-1。 13在一段匯編程序中多次調(diào)用另一段程序,用宏指令比用子程序?qū)崿F(xiàn)起來。參考答案為:B A占內(nèi)存空間小,但速度慢 B占內(nèi)存空間大,但速度快 C占內(nèi)存空間相同,速度快 D占內(nèi)存空間相同,速度慢 解析1)宏指令簡化程序的書寫,不節(jié)省程序存儲(chǔ)空間,但執(zhí)行時(shí)間比子程序短。 2)子程序簡化程序的書寫,也節(jié)省程序的存儲(chǔ)空間,但執(zhí)行時(shí)間比宏指令長。 14在程序執(zhí)行過程中,IP寄存器中始終保存的是參考答案為:B A上一條指令的首地址 B下一條指令的首地址 C正在執(zhí)行指令的首地址
10、D需計(jì)算有效地址后才能確定地址 解析在程序運(yùn)行過程中,它始終指向下一條指令的首地址,它與CS代碼段寄存器聯(lián)合確定下一條指令的物理地址。 15PSW寄存器中共有_位條件狀態(tài)位,有_位控制狀態(tài)位。參考答案為:A A6、3 B3、6 C8、4 D4、8 解析PSW有6位條件狀態(tài)位:AF、CF、ZF、PF、SF、OF; PSW有3位控制狀態(tài)位:IF、TF、DF 16下列指令執(zhí)行時(shí)出錯(cuò)的是參考答案為:A AADD BUF1,BUF2 BJMP DWORD PTR DAT BX CMOV AX,BX+DI NUM DTEST
11、AL,08H 解析ADD指令的兩個(gè)操作數(shù)不能同時(shí)是存儲(chǔ)器操作數(shù),所以選項(xiàng)A中的指令是錯(cuò)誤的。 17已知(AX)=1234H,執(zhí)行下述三條指令后,(AX)=參考答案為:D MOV BX,AX NEG BX ADD AX,BX A1234H B0EDCCH C6DCCH D0000H 解析第一條指令的功能是將AXBX,即BX中的內(nèi)容為1234H; 第二條指令的功能是對BX求補(bǔ),即BX中的內(nèi)容變?yōu)?234H; 第三條指令的功能是AX+BXAX,即1234H+(-1234H)=0AX; 所以執(zhí)行三條指令后,AX的內(nèi)容為0。 18在下列指令中,_指令的執(zhí)行會(huì)影響條件碼中的C
12、F位。參考答案為:D AJMP NEXT BJC NEXT CINC BX DSHL AX,1 解析JMP、JC指令不任何影響狀態(tài)標(biāo)志位; INC指令執(zhí)行結(jié)果除不影響CF外,其余狀態(tài)標(biāo)志位(AF、OF、PF、SF、ZF)都受影響。 SHL指令使CF=O,OFO,影響ZF、SF、PF標(biāo)志位,AF無定義。 19串指令中的目的操作數(shù)地址是由_提供。參考答案為:C ASS:BP BDS:SI CES:DI DCS:IP 解析略 20將DX的內(nèi)容除以2,正確的指令是參考答案為:C ADIV 2 BDIV DX,2 CSAR DX,1
13、DSHL DX,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)指令:SHR DX, 1 使DX的內(nèi)容向右移動(dòng)了一位,因此DX的內(nèi)容變?yōu)?000000001011100B,即005CH。 (2)指令:RCR DL, 1 使DL的內(nèi)容向右循環(huán)帶進(jìn)位移動(dòng)了一位,DH的內(nèi)容
14、不變,因此DX的內(nèi)容變?yōu)?000000011011100B,即00DCH。 (3)指令:RCL DX, CL 使DX的內(nèi)容向左循環(huán)帶進(jìn)位移動(dòng)了3位,因此DX的內(nèi)容變?yōu)?000010111001100B,即05CCH。 2寫出完成下述功能的程序段: (1)傳送25H到AL寄存器 (2)將AL的內(nèi)容乘以2 (3)傳送15H到BL寄存器 (4)AL的內(nèi)容乘以BL的內(nèi)容 并請寫出最后(AX)=? 答:(1)MOV AL, 25H (2)SHL AL, 1 (3)MOV BL, 15H (4
15、)MUL BL 最后,(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寫一程序段,求雙字長數(shù)DXbX的相反數(shù)。 答:NEG DX NEG AX SBB DX, 0 解析求雙字長數(shù)DX:AX相反數(shù),即對其求補(bǔ),所以應(yīng)實(shí)現(xiàn)的操作是: (DX:AX) 0-(DX:AX) 即 0 : 0 -) DX : AX 將上
16、面的算式分解后,即為對DX求補(bǔ),對AX求補(bǔ),并從DX中減去將AX求補(bǔ)時(shí)產(chǎn)生的借位。所以相應(yīng)的指令就是: NEG DX NEG AX SBB DX, 0 三,程序分析題(每小題6分,共36分) 1現(xiàn)有如下程序段: DATA SEGMENT DA3 EQU 1234H ORG 0020H DA4 EQU -DA2 DA1 DW 12H,23H DA5 DB 31H,32H DA2 DB 11H,21H
17、160; DATA ENDS 注意:程序是從左到右看,先把左邊的程序段看完了再看右邊的程序段。下面的程序段以相同的方法進(jìn)行讀解。請回答:(1)該程序段已占有的存儲(chǔ)字節(jié)數(shù)是多少? (2)符號名DA4的值是多少?符號名DA5的值是多少? 答:(1) 該程序段已占有的存儲(chǔ)字節(jié)數(shù)是8個(gè)字節(jié)。 (2) 符號名DA4的值為2,符號名DA5的值是0026H。 解析1)偽指令ORG 0020H,設(shè)置存儲(chǔ)單元起始偏移地址為0020H; 2)符號名DA1的值(即所對應(yīng)存儲(chǔ)單元的偏移地址)是0020H,該數(shù)據(jù)區(qū)的類型為字,有2個(gè)字?jǐn)?shù)據(jù),所以共占用4個(gè)字節(jié); 3)符號名DA2的
18、值(即所對應(yīng)存儲(chǔ)單元的偏移地址)是0024H,該數(shù)據(jù)區(qū)的類型為字節(jié),有2個(gè)字節(jié)數(shù)據(jù),所以共占用2個(gè)字節(jié); 4)經(jīng)EQU定義的符號名DA3、DA4不占用存儲(chǔ)空間,“$” 用來表示當(dāng)前地址計(jì)數(shù)器的值(0026H),可它們的值分別為DA3=1234H, DA4=2。 5)符號名DA5的值(即所對應(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í)行下列程序段后,回答問題。 ORG 1221H MOV BX, OFFSET NUM NUM
19、60;DW 12H MOV CL,BYTE PTR NUM+1 MOV CH,TYPE NUM MOV AX,NUM HLT 請問:(AX)=_,(BX)=_,(CX)=_。 答:(AX)=0012H (BX)=1221H (CX)=0200H 解析1)指令MOV AX, NUM的功能是將NUM單元的字內(nèi)容12H傳送給AX,使得(AX)=0012H; 2)指令MOV BX, OFFSET NUM
20、的功能是將NUM單元的偏移地址1221H傳送給BX,使得(BX)=1221H; 3)指令MOV CL, BYTE PTR NUM+1的功能是將NUM+1(1222H)單元的字節(jié)內(nèi)容(即NUM字單元的高字節(jié))00H傳送給CL,使得(CL)=00H; 4)指令MOV CL, TYTE NUM的功能是將NUM字單元的類型字節(jié)數(shù)2傳送給CH,使得(CH)=02H; 5)綜合第4和第5點(diǎn),可知CX寄存器的內(nèi)容為0200H。 3閱讀如下程序: ADRR DB XXH,XXH,XXH CMP AD
21、RRBX,0 NUM EQU -ADRR LOOPZ DON RETT DB? JNZ NEXT MOV BL,OFFH MOV CX,NUM NEXT:MOV RETT,BL MOV BX,-1 HLT DON:INC BX 請問:(1)該程序完成的功能是什么? (2)程序執(zhí)行后指出RETT字節(jié)單元中的內(nèi)容是什么? 答:(1) 在以ADRR為起始地址的數(shù)組中,查找第一個(gè)非0數(shù)據(jù)。 (2)&
22、#160;若找到則將第一個(gè)非0數(shù)據(jù)在數(shù)組中的偏移量送入RETT單元中;若無非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ù)。如果是由于找到,則將第一個(gè)非0數(shù)據(jù)在數(shù)組中的偏移量送入RETT單元中;若沒找到非0數(shù)據(jù),則將OFFH送入RETT單元中。4現(xiàn)有一子程序: SUB1 PROC PLUS:TEST BL,80H TEST AL,80H (檢測A
23、L中的數(shù)值最高位) JE EXITO JE PLUS XCHANGE:XCHG AL,BL TEST BL,80H EXITO:RET JNE EXITO SUB1 ENDP JMP XCHANGE 試回答:(1)子程序的功能是什么? (2)若調(diào)用子程序前AL=9AH,BL=77H,則返回主程序時(shí),AL=_,BL=_。 答:(1)子程序的功能是判別AL和BL中的數(shù)是否為異號數(shù),當(dāng)為異號時(shí)交換,否則不變。 (2) AL=77H, BL=9
24、AH 解析1)數(shù)據(jù)是以二進(jìn)制的形式存儲(chǔ)在計(jì)算機(jī)中的。數(shù)據(jù)對應(yīng)的二進(jìn)制數(shù)的最高位是數(shù)據(jù)的符號位:若為0表示該數(shù)為正數(shù),若為1表示該數(shù)為負(fù)數(shù); 2)TEST AL, 80H 和 TEST BL,80H指令是在測試AL和BL的最高位(即符號位)的狀態(tài)是1還是0。 3)若兩個(gè)數(shù)的最高位(即符號位)的狀態(tài)不同的時(shí)候(即兩數(shù)為異號),則執(zhí)行XCHANGE標(biāo)號所對應(yīng)語句,即交換AL和BL中的內(nèi)容。 4)否則若兩個(gè)數(shù)的最高位(即符號位)的狀態(tài)相同的時(shí)候(即兩數(shù)為同號),則執(zhí)行EXIT0標(biāo)號所對應(yīng)語句,程序結(jié)束,即AL和BL中的內(nèi)容不被。 5)所以第二問中,AL
25、=9AH,BL=77H:AL中的數(shù)據(jù)的最高位為1,BL中的數(shù)據(jù)的最高位為0,即兩個(gè)數(shù)為異號,所以要交換AL和BL中的內(nèi)容,即AL=77H,BL=9AH。 5閱讀程序段: BLOCK DB 20H,1FH,08H,81H,OFFH LOP1:CMP AL,SI+1 RESULT DB? JNG NEXT MOV AL,SI+1 START:LEA SI,BLOCK NEXT:INC SI MOV CX,SI LOOP LOP1 INC&
26、#160;SI MOV RESULT,AL MOV AL,SI HLT 請問:(1)該程序完成的功能是什么? (2)該程序循環(huán)的次數(shù)是多少? 答:(1) 該程序完成的功能是從20H(32)個(gè)有符號數(shù)中找出最小的數(shù)送入RESULT單元中。 (2) 該程序的循環(huán)次數(shù)是1FH(31)。 解析1)指令LEA SI, BLOCK的功能是使SI指向了BLOCK數(shù)組的首單元; 2)指令MOV CX, SI的功能是將SI指向單元的內(nèi)容20H傳送給CX,即(CX)=20H;其后又有指令
27、DEC CX,使得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ù)進(jìn)行比較,從數(shù)組中選出最小數(shù)保存在AL中。 4)由于比較后采用的轉(zhuǎn)移指令是JNG,所以該程序處理的顯然是一組有符號的數(shù)據(jù)。 6閱讀如下程序段,回答所提出的問題,假定X1,X2,XN為無符號數(shù)。 ORG 100H BLOK DW X1,X2,XN COUNT EQU(-BLOLOK)/2 RESULT DW COUNT,? LEA BX,
28、BLOK-2 MOV CX,RESULT XOR AX,AX GOON:ADD BX,2 CMP AX,BX JAE NEXT MOV AX,BX NEXT:LOOP GOON MOV RESULT+2,AX 程序段執(zhí)行完,回答下述問題 RESULT+2字存儲(chǔ)單元的內(nèi)容=_ BX=_ 程序循環(huán)次數(shù)=_ 答:RESULT+2字存儲(chǔ)單元的內(nèi)容是MAX(X1, X2, XN) BX= 100H + 2×(COUNT-1) 程序
29、循環(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×(CO
30、UNT-1)。四,程序填空題(注意:下列各小題中,每空只能填一條指令!每小題6分,共12分) 1在表TABLE處存放著N個(gè)無符號字節(jié)數(shù),求表中前10個(gè)字節(jié)數(shù)的總和并保存在AX寄存器中。如果總和值超過AX寄存器的容量,則置AX寄存器內(nèi)容不變。請?jiān)诔绦蛑械目崭裉幪钊脒m當(dāng)指令使其完整。 LEA BX,TABLE (2) MOV CX,10 JC END0 MOV SUM,AX DON:INC BX MEXT:(1) (3) ADC AH,0 ENDO:HLT JNC DO
31、N 答:(1) ADD AL, BX (2) MOV AX, SUM (3) LOOP NEXT 解析1)程序的前三條指令的功能分別是: 將表TABLE的首址傳送給BX; 將循環(huán)次數(shù)傳送給計(jì)數(shù)器CX; 將AX的原值保存在SUM單元中; 以上指令實(shí)現(xiàn)了設(shè)置循環(huán)初始參數(shù)的功能。 2)標(biāo)號NEXT所對應(yīng)的第一個(gè)空白處就是循環(huán)體的第一條指令。根據(jù)題目的要求求表中前10個(gè)字節(jié)數(shù)的總和,可知循環(huán)每次應(yīng)實(shí)現(xiàn)將表TABLE中的數(shù)據(jù)按字節(jié)加法的方式進(jìn)行累加到AL中,并且將字節(jié)加法產(chǎn)生的進(jìn)位加到AH中。所以第一
32、個(gè)空白處應(yīng)填入指令: ADD AL, BX 3)程序的第五條指令實(shí)現(xiàn)的是判斷求得的和是否超過AX寄存器的容量。 4)如果有進(jìn)位(即已超過AX寄存器的容量),則執(zhí)行第二個(gè)空白處的指令,根據(jù)題目當(dāng)出現(xiàn)此種情況時(shí),使AX內(nèi)容不變,即恢復(fù)其原值,因此第二個(gè)空白處應(yīng)填入指令:MOV AX, SUM。 5)如果沒有進(jìn)位(即未超過AX寄存器的容量),則轉(zhuǎn)DON。程序?qū)⑹笲X的內(nèi)容加1,即使其指向下一個(gè)表中的字節(jié)數(shù)據(jù)。接下來就應(yīng)該將計(jì)數(shù)器CX減1,并判斷是否繼續(xù)下一次循環(huán)。因此,第三個(gè)空白處應(yīng)填入指令: LOOP NEXT。 2BEG為起始地址的存儲(chǔ)
33、區(qū)域中存放有100個(gè)字節(jié)數(shù)據(jù),現(xiàn)將其首、尾顛倒過來,重新排放這100個(gè)字節(jié)數(shù)據(jù)。請?jiān)诔绦蛑械目崭裉幪钊脒m當(dāng)?shù)闹噶钍蛊渫暾?MOV CX,32H LEA SI,BEG MOV DI,SI (1) DON:MOV AL,SI (2) MOV SI,AL (3) DEC DI LOOP DON HLT 答:(1) ADD DI, 99 (2) XCHG AL, DI (3) INC SI 解析1)
34、60;題目要求:將以BEG為起始地址的區(qū)域中的100個(gè)字節(jié)數(shù)據(jù)首尾顛倒存放。例如,如果原先為X1,X2, X3, X98, X99, X100,則首尾顛倒后將變?yōu)閄100, X99, X98,X3, X2,X1。 2) 顛倒的方法是:將X1與X100對調(diào)、X2與X99對調(diào)、X3與X98對調(diào)、,即將前一半的數(shù)據(jù)與后一半相應(yīng)位置的數(shù)據(jù)對調(diào)。這個(gè)過程每次處理兩個(gè)數(shù)據(jù),所以共有(100/2=)50對數(shù)據(jù)對調(diào)。 3) 根據(jù)以上分析可知,這個(gè)循環(huán)將進(jìn)行50(32H)次,每次將相應(yīng)的兩個(gè)數(shù)據(jù)對調(diào),這兩個(gè)數(shù)據(jù)可分別由兩個(gè)
35、寄存器來指向。 4) 閱讀程序可知,SI寄存器指向前一半中的某個(gè)數(shù)據(jù),DI寄存器指向后一半中對應(yīng)的數(shù)據(jù)。在循環(huán)的初始化部分,使應(yīng)計(jì)數(shù)器CX的值為50(或32H),SI指向第一個(gè)數(shù),DI指向最后一個(gè)數(shù),所以第一個(gè)空白處應(yīng)填入指令:ADD DI, 99。 5) 在循環(huán)體中,應(yīng)首先交換SI和DI所指向單元的內(nèi)容,然后使指針SI加1、DI減1,所以第二、三個(gè)空白處應(yīng)填入指令: XCHG AL, DI INC SI 五,編制程序題(第1小題6分,第2小題14分,共20分) 1試編寫一個(gè)匯編語言程序,要求對鍵盤輸
36、入的小寫字母用大寫字母顯示出來。 答:1BEGIN:MOV AH,1 INT 21H CMP AL,a JB STOP CMP AL,z JA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN STOP:RET 解析1)該程序設(shè)計(jì)的主體應(yīng)是一個(gè)循環(huán)當(dāng)輸入字符的是小寫字母(a z)時(shí),就將其轉(zhuǎn)換為大寫字母來顯示,此過程循環(huán)進(jìn)行,直到當(dāng)輸入的不是小寫字母時(shí),程序結(jié)束。 2)輸入一個(gè)字符的可使用DOS的1號功能實(shí)現(xiàn): MOV AH, 1 INT 21H 該DOS調(diào)用執(zhí)行完后,會(huì)將輸入的字符的ASCII碼值送入AL寄存器。 3)判斷輸入的是否為小寫字母(a z
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級英語閱讀理解練習(xí)冊
- 2026浙江省城建融資租賃有限公司招聘5人備考題庫及1套完整答案詳解
- 三年級數(shù)學(xué)下冊第二單元計(jì)算題
- 新冠疫情期間幼兒園手衛(wèi)生制度
- 現(xiàn)代農(nóng)業(yè)技術(shù)應(yīng)用課程考核題及解析
- 先進(jìn)教師事跡材料撰寫指導(dǎo)手冊
- 2026年人力資源危機(jī)管理協(xié)議
- 建筑工程進(jìn)場安全工作交底
- 測功機(jī)國際市場分析與供應(yīng)商調(diào)查
- 公司法務(wù)風(fēng)險(xiǎn)防控實(shí)務(wù)指南
- 八年級地理《中國氣候的主要特征》單元核心課教學(xué)設(shè)計(jì)
- 長護(hù)險(xiǎn)人員管理培訓(xùn)制度
- 2026河南大學(xué)附屬中學(xué)招聘77人備考題庫附答案
- 網(wǎng)絡(luò)安全運(yùn)維與管理規(guī)范(標(biāo)準(zhǔn)版)
- 液冷系統(tǒng)防漏液和漏液檢測設(shè)計(jì)研究報(bào)告
- (2025版)中國焦慮障礙防治指南
- 妊娠期缺鐵性貧血中西醫(yī)結(jié)合診療指南-公示稿
- 金蝶合作協(xié)議書
- 2025年工廠三級安全教育考試卷含答案
- 2026年上海理工大學(xué)單招職業(yè)適應(yīng)性測試題庫附答案
- 建設(shè)用地報(bào)批培訓(xùn)課件
評論
0/150
提交評論