




已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
習(xí)題五1匯編程序和匯編語(yǔ)言源程序有什么區(qū)別??jī)烧叩淖饔檬鞘裁??答:匯編程序是對(duì)匯編源程序進(jìn)行編譯的系統(tǒng)程序;匯編源程序是編程人員利用匯編語(yǔ)言為解決某些問(wèn)題而編寫(xiě)的程序。匯編程序用來(lái)對(duì)匯編源程序進(jìn)行編譯,從而產(chǎn)生目標(biāo)代碼的;而匯編源程序是用來(lái)執(zhí)行程序動(dòng)作的語(yǔ)句。2匯編語(yǔ)言源程序的語(yǔ)句有哪幾種?各自的作用是什么?答:匯編語(yǔ)言源程序是由指令語(yǔ)句、偽指令語(yǔ)句、宏指令語(yǔ)句組成。指令語(yǔ)句:產(chǎn)生目標(biāo)代碼,是CPU可以執(zhí)行的能夠完成特定功能的語(yǔ)句。偽指令語(yǔ)句:在匯編程序?qū)υ闯绦騾R編期間由匯編程序處理的操作,它可以完成如處理器選擇、定義數(shù)據(jù)、分配存儲(chǔ)區(qū)、指示程序結(jié)束等功能,但不產(chǎn)生目標(biāo)代碼。宏指令語(yǔ)句:宏指令語(yǔ)句的目的在于簡(jiǎn)化匯編語(yǔ)言源程序的書(shū)寫(xiě),不能縮小目標(biāo)代碼文件。3標(biāo)號(hào)和變量都有什么屬性?各屬性的作用是什么?答:有段屬性、偏移地址屬性和類型屬性。 段屬性:段屬性定義了標(biāo)號(hào)和變量的段起始地址,其值是在某一段寄存器中。 偏移地址屬性:該屬性表示標(biāo)號(hào)和變量相距段起始地址的字節(jié)數(shù),是一個(gè)16位無(wú)符號(hào)數(shù)。 類型屬性:對(duì)于標(biāo)號(hào)而言:用于指出該標(biāo)號(hào)是在本段內(nèi)引用還是在其它段中引用。標(biāo)號(hào)的類型有NEAR(段內(nèi)引用)和FAR(段間引用)兩種;對(duì)變量而言:其類型屬性由定義變量的偽指令DB(定義字節(jié)型)、DW(定義字型)、DD(定義雙字型)等確定。4試敘述匯編語(yǔ)言源程序的上機(jī)過(guò)程。答:分四步進(jìn)行 編輯、匯編、 連接、 調(diào)試。編輯:用編輯程序(例如EDIT.COM)建立擴(kuò)展名為.ASM的匯編語(yǔ)言源程序文件。匯編:用匯編程序(例如MASM.EXE)將匯編語(yǔ)言源程序文件匯編成目標(biāo)程序文件,其擴(kuò)展名為.OBJ。如果在匯編過(guò)程中出現(xiàn)語(yǔ)法錯(cuò)誤,根據(jù)錯(cuò)誤信息提示(如錯(cuò)誤位置、錯(cuò)誤類型、錯(cuò)誤說(shuō)明),用編輯軟件重新調(diào)入源程序文件進(jìn)行修改,直至沒(méi)有出現(xiàn)語(yǔ)法錯(cuò)誤,再進(jìn)行連接程序。連接:用連接程序(例如LINK.EXE)把目標(biāo)程序文件轉(zhuǎn)化成可執(zhí)行文件,其擴(kuò)展名為.EXE。調(diào)試:用調(diào)試程(例如 DEBUG.EXE)序?qū)蓤?zhí)行文件進(jìn)行調(diào)試,直到無(wú)錯(cuò)誤為止。此時(shí)的可執(zhí)行文件在DOS命令下直接執(zhí)行。5已知數(shù)據(jù)段DATA從存儲(chǔ)器02000H單元開(kāi)始,DATA段的定義如下: DATA SEGMENT VAR1 DB 2 DUP(0,1,?) VAR2 DW 50 DUP(?) VAR3 DB 10 DUP(0,1,2 DUP(3),4) DATA ENDS試求出三個(gè)變量經(jīng)SEG、OFFSET、TYPE、LENGTH、SIZE運(yùn)算的結(jié)果。答:運(yùn)算結(jié)果如下表所示:回送符變量SEGOFFSETTYPELENGTHSIZEVAR10200H0000H1H2H2HVAR20200H0006H2H32H64HVAR30200H006AH1H0AH0AH6已知數(shù)據(jù)段定義如下,試采用圖示說(shuō)明各變量在內(nèi)存的分配情況以及數(shù)據(jù)的預(yù)置情況。 DATA SEGMENT A1 DB 50,100,2 DUP(0,1) A2 DB 2 DUP(2,3 DUP(?),10H) A3 DB happy new year! A4 DW 0,2000H A5 DW ?,ABA300H00H00H20HHH42H41HA1A2A4A50000H32H64H00H01H00H01H02HHHH10H02HHHH10H68H 61H70H70H79H20H6EH65H77H20H79H65H61H72H21H001FH0010H DATA ENDS答:B3H64H00H00H00H00H00H00H01H00H01H00H01H00H01H00H01H32H31H34H33H36H35H0100HB1B2B4B57試采用圖示說(shuō)明各變量在內(nèi)存的分配情況以及數(shù)據(jù)的預(yù)置情況。 DATA SEGMENT ORG 0100H B1 DB ? B2 DW 100 B3 DW 2 DUP (0) COUNT EQU 5 B4 DB COUNT DUP(0,1) B5 DW 12,34,56 DATA ENDS答:內(nèi)存的分配情況以及數(shù)據(jù)的預(yù)置情況見(jiàn)右圖8已知變量VAR1、VAR2、VAR3定義如下,試分析下面的指令是否正確,若有錯(cuò)誤,請(qǐng)進(jìn)行改正。 DATA SEGMENT VAR1 DB ? VAR2 DB 10 VAR3 EQU 100 DATA ENDS(1) MOV VAR1,AX(2) MOV VAR3,AX(3) MOV BX,VAR1 MOV BX,10(4) CMP VAR1,VAR2(5) VAR3 EQU 50答:(1)類型不匹配,該為:MOV VAR1,AL (2)立即數(shù)不能作為目的操作數(shù),該為:MOV AX,VAR3 (3)第一句類型不匹配,改為:MOV BL,VAR1 第二句未指明存儲(chǔ)器操作數(shù)的類型,改為:MOV BYTE PTRBX,10 (4)兩個(gè)存儲(chǔ)器操作數(shù)之間不能直接作比較,改為:MOV AL,VAR1CMP AL,VAR2 (5)符號(hào)VAR3 已被定義,不能重復(fù)定義,應(yīng)去掉。9假設(shè)VAR1和VAR2為字變量,LAB為標(biāo)號(hào),試指出下面指令的錯(cuò)誤之處,并加以改正。(1)ADD VAR1,VAR2答:兩存儲(chǔ)器操作數(shù)之間不能直接相加,改為:MOV AX,VAR1 ADD AX,VAR2(2)SUB AL,VAR2答:兩操作數(shù)類型不匹配,改為:SUB AX,VAR2(3)MOV CL,VAR1答:兩操作數(shù)類型不匹配,改為:MOV CX,VAR1(4)JMP LABSI答:相對(duì)寄存器尋址,相對(duì)位移量不能為標(biāo)號(hào),因?yàn)閿?shù)據(jù)值。改為:JMP 5SI(5)JNZ VAR1答:條件轉(zhuǎn)移指令轉(zhuǎn)移的目標(biāo)地址,只能是標(biāo)號(hào)或8位位移量。改為:JNZ LAB10試說(shuō)明下面指令中哪些需要進(jìn)行PTR說(shuō)明。VAR1 DB 10H,100VAR2 DW 1000(1)MOV AL,VAR1(2)MOV DH,BX(3)ADD BX,2(4)MOV CL,VAR2(5)SUB AL,VAR1+1答:(3)、(4)條指令需要進(jìn)行PTR說(shuō)明11選擇題(1)在順序結(jié)構(gòu)的流程圖中,不包含有( C )。A)起始框 B)終止框 C)判斷框 D)處理框(2)設(shè)AL0A8H,CX2,CF1,執(zhí)行RCL AL,CL指令后,AL(無(wú)正確選項(xiàng))。A)51H B)46H C)47H D)0C5H注:正確的結(jié)果為:AL0A3H(3)下述指令的執(zhí)行結(jié)果是( C )MOV AL,0FFHXOR AL,3FHA)AL40H B)AL20H C)AL0C0H D)AL0E0H12在AX和DX中存有一個(gè)32位帶符號(hào)數(shù)(DX中存放高16位),試編寫(xiě)程序求出它的相反數(shù)。答:程序設(shè)計(jì)如下: CODE SEGMENT ASSUME CS:CODESTART:MOV CX,0CLCSBB CX,AXMOV AX,CXMOV CX,0SBB CX,DXMOV DX,CXMOV AH,4CHINT 21HCODE ENDSEND START13編程實(shí)現(xiàn)求S(X2Y2)/ Z的值,并將結(jié)果放入RESULT單元。(設(shè):X、Y、Z均為字節(jié)數(shù),且Z為無(wú)符號(hào)數(shù))答:程序設(shè)計(jì)如下: DATA SEGMENT X DB 20H Y DB 35H Z DB 12H RESULT DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,XMUL ALMOV DX,AXMOV AL,YMUL ALADD AX,DXMOV DX,0MOV BL,ZMOV BX,0DIV BXMOV RESULT,AXMOV AH,4CHINT 21HCODE ENDSEND START14試編程實(shí)現(xiàn)將鍵盤(pán)輸入的小寫(xiě)字母用大寫(xiě)字母顯示出來(lái)。答:程序設(shè)計(jì)如下:CLRF MACRO ;宏匯編命令,定義宏MOV DL,0DHMOV AH,02HINT 21H ;回車,使光標(biāo)回到起始位置MOV DL,0AHMOV AH,02HINT 21H ;光標(biāo)換行ENDM ;宏定義結(jié)束DATA SEGMENT STRING DB 50,?,50 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXLEA DX,STRINGMOV AH,0AHINT 21HCLRF ;宏指令MOV BL,STRING1MOV BH,0LEA SI,STRING2ADD BX,SIMOV BYTE PTRBX,$NEXT:MOV DL,SICMP DL,aJB NEXT1CMP DL,zJA NEXT1SUB DL,20HMOV SI,DLNEXT1:INC SIDEC BLJNZ NEXTLEA DX,STRING2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START15若在數(shù)組字變量SQTAB平方表中有十進(jìn)制數(shù)0100的平方值,用查表法找出35這個(gè)數(shù)的平方值放入字變量NUM中,寫(xiě)出程序段和有關(guān)的偽指令。答:程序設(shè)計(jì)如下DATA SEGMENT SQTAB DW 0,1,4,9,16,25,36, 10000TAB DB 35 NUM DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV BX,OFFSET SQTABMOV AL,TABSAL AL,1MOV AH,0ADD BX,AXMOV AX,WORD PTRBXMOV NUM,AXMOV AH,4CHINT 21HCODE ENDS END START16試指出下列無(wú)條件轉(zhuǎn)移指令的轉(zhuǎn)移地址中的轉(zhuǎn)移地址? (1)JMP BX答:轉(zhuǎn)移地址為BX寄存器中的值。屬段內(nèi)間接轉(zhuǎn)移,IP BX (2)JMP WORD PTRBX答:轉(zhuǎn)移地址為BX中的值指明的存儲(chǔ)器字單元中的值。屬段內(nèi)間接轉(zhuǎn)移,IP (MEM)(3)JMP NEAR PTR FOR答:轉(zhuǎn)移地址為當(dāng)前IP16位位移量。標(biāo)號(hào)FOR表示16位位移量,屬段內(nèi)近轉(zhuǎn)移。(4)JMP FAR PTR FAR_PRO答:轉(zhuǎn)移地址為標(biāo)號(hào)FAR_PRO表示的16位段基址和16位偏移量。屬段間直接轉(zhuǎn)移。(5)JMP SHORT AGAIN答:轉(zhuǎn)移地址為當(dāng)前IP8位位移量。標(biāo)號(hào)AGAIN表示8位位移量,屬段內(nèi)短轉(zhuǎn)移。(6)JMP DWORD PTRBXDI答:轉(zhuǎn)移地址為由基址變址尋址方式提供的存儲(chǔ)器操作數(shù)(兩個(gè)字)17試分析下列程序段,如果AX和BX的內(nèi)容分別給出如下5種情況,試問(wèn)程序分別轉(zhuǎn)向何處?(1)AX1478H,BX80DCH(2)AX0B568H,BX54B5H(3)AX42C8H,BX608DH(4)AX0D023H,BX9FD0H(5)AX94B7H,BX0B568HADD AX,BXJNO L1JNC L2SUB AX,BXJNC L3JNO L4JMP L5答:(1)轉(zhuǎn)向L1(2)轉(zhuǎn)向L1(3)轉(zhuǎn)向L2(4)轉(zhuǎn)向L5(5)轉(zhuǎn)向L518編寫(xiě)程序,計(jì)算下面函數(shù)的值。 2X (X 0)S 3X (0 X 10) 4X (X 10)答:程序設(shè)計(jì)如下DATA SEGMENT X DB 17S DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,XCMP AL,0JGE LOOP1 ADD AL,ALMOV S,AL MOV AH,4CHINT 21H LOOP1:CMP AL,0AHJG LOOP2MUL 3MOV S,AL MOV AH,4CHINT 21H LOOP2:MUL 4MOV WORD PTR S,AXMOV AH,4CHINT 21H CODE ENDS END START19設(shè)內(nèi)存中有三個(gè)互不相等的無(wú)符號(hào)字?jǐn)?shù)據(jù)X、Y和Z,存放在X開(kāi)始的字單元中,編程實(shí)現(xiàn)將三個(gè)數(shù)據(jù)從小到大排序后放到X、Y和Z中。答:程序設(shè)計(jì)如下DATA SEGMENTX DW 25H,27H,18HY DW ?Z DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AX,XCMP AX,X2JBE LOOP1XCHG AX,X2LOOP1:CMP AX,X4JBE LOOP2 XCHG AX,X4LOOP2:MOV X,AXMOV AX,X2CMP AX,X4JBE LOOP3 MOV Z,AXMOV AX,X4MOV Y,AXJMP LOOP4LOOP3:MOV Y,AXMOV AX,X4MOV Z,AXLOOP4:MOV AH,4CHINT 21HCODE ENDS END START20分析下面程序功能,并指出程序執(zhí)行后,DAT2數(shù)據(jù)區(qū)中的內(nèi)容是什么? DAT1 DB 0,1,2,3,4,5,6,7,8,9 DAT2 DB 5 DUP(?) MOV CX,5 MOV BX,5 MOV SI,0 MOV DI,0NEXT:MOV AL,DAT1BX+SI MOV DAT2 DI,AL INC SI INC DI LOOP NEXT HLT答:DAT2數(shù)據(jù)區(qū)中的內(nèi)容為:5,6,7,8,921編寫(xiě)程序求出首地址為DAT的100個(gè)有符號(hào)字?jǐn)?shù)據(jù)中的最小偶數(shù),并將這個(gè)數(shù)存放到DAT1字單元中。答:程序設(shè)計(jì)如下(提示:偶數(shù)的最末為是零)DATA SEGMENTDAT DB 02H,0A8H,34H,23H,23H,34H,26H,0A2H NUM EQU 64HDAT1 DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA SI,DATMOV CX,NUMMOV AL,0NEXT:MOV DL,SISHR DL,1JNC NNINC SIDEC CXJNZ NEXTJMP MMNN:MOV AL,SINN1:INC SIDEC CXJZ MMMOV BL,SISHR BL,1JC NN1MOV BL,SICMP AL,BLJLE NN1MOV AL,BLJMP NN1MM:MOV DATI,AL MOV AH,4CHINT 21HCODE ENDS END START22試編寫(xiě)一個(gè)程序段,要求比較兩個(gè)字符串STR1和STR2是否完全相等。若完全相等,則置AL=1;若不完全相等,則置AL1。答:程序設(shè)計(jì)如下DATA SEGMENT STR1 DB FDASFDFDSA,$NUM1 EQU $STR1STR2 DB FDASFDFDSA,$NUM2 EQU $STR2DATA ENDSCODE SEGME
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 復(fù)習(xí)課件:線粒體與葉綠體
- 2025年4月無(wú)線網(wǎng)絡(luò)優(yōu)化習(xí)題與參考答案解析
- 2024年4月山東C類人員安全考核試題及參考答案解析
- 4月心理學(xué)基礎(chǔ)試題及答案(附解析)
- 節(jié)目制作中的后期合成與特效制作考核試卷
- 英語(yǔ)戲劇表演與舞臺(tái)藝術(shù)考核試卷
- 手工具企業(yè)生產(chǎn)安全與應(yīng)急預(yù)案制定考核試卷
- 抗挫能力培養(yǎng):兒童批評(píng)教育的有效策略
- 硬件設(shè)計(jì)在物聯(lián)網(wǎng)邊緣設(shè)備中的優(yōu)化考核試卷
- 絕緣材料在風(fēng)力發(fā)電機(jī)組控制柜的應(yīng)用考核試卷
- 如何做好醫(yī)患溝通
- 2022年浙江建設(shè)技師學(xué)院工作人員招聘考試真題
- 食品安全責(zé)任保險(xiǎn)課件
- 國(guó)開(kāi)電大《應(yīng)用寫(xiě)作(漢語(yǔ))》形考任務(wù)1-6答案
- 穿孔機(jī)作業(yè)指導(dǎo)書(shū)
- 統(tǒng)考考生本科志愿樣表
- 人教鄂教版六年級(jí)下冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)匯總
- 新航道托福雅思培訓(xùn)班
- 數(shù)車實(shí)訓(xùn)圖紙
- 1小學(xué)英語(yǔ)教師面試:聽(tīng)力課SpecialdaysinApril全英文教案及試講逐字稿
- 人教版小學(xué)數(shù)學(xué)一年級(jí)下冊(cè)期末黃岡測(cè)試卷(三)
評(píng)論
0/150
提交評(píng)論