版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、v1.0可編輯可修改習題33.1在以Block為首地址的字節(jié)單元中,存放了一個班級的學生考試成績。試編寫一程序,NUMBERS元,查表結果存利用學生的序號來查表得到該學生的成績,設學生的序號在入 RESULT元。解:DSEG SEGMENT19BLOCKDB 67,78,86,57,88,75,78,96,77,88,87,95,67,86,83,55NUMBER DB 9 ; 要顯示的16進制數字RESULT DB ;存放要顯示數字對應的七段碼DSEG ENDSCSEG SEGMENTASSUME CS: CSEG, DS:DSEGSTART :MOV AX, DSEGMOV DS, AXM
2、OV BX, OFFSET BLOCKMOV AL, NUMBER;取16進制數字AND AL, OFHXLAT;查表取得對應的七段碼MOV RESULT, AL;保存MOV AX, 4C00HINT 21HCSEG ENDSEND START3.2試編程序,統(tǒng)計由52600H開始的100個單元中所存放的字符“ A “的個數,并將結果存放在DX中。解:CSEG SEGMENTASSUME CS: CSEGSTART :MOV AX, 5260HMOV DS, AXMOV BX, 0MOV AL, AMOV CX,100MOV DX,0AGA:CMP AL,BXJNZ LPINC DXLP: I
3、NC BXLOOP AGAMOV AX, 4C00HINT 21HCSEG ENDSEND START3.3在當前數據段(DS,偏移地址為 GRAD開始的連續(xù)80個單元中,存放著某班 80個同 學某門考試成績。按要求編寫程序: 試編寫程序統(tǒng)計90分;80分89分;70分79分;60分69分,V 60分的人數各為多少,并將結果放在同一數據段、偏移地址為LEVEL開始的連續(xù)單元中。 試編寫程序,求該班這門課的平均成績?yōu)槎嗌伲⒎旁谠摂祿蔚腁VER單元中。解:DATASEGMENTGRADE DB80 DUP();運行前置入具體數據LEVELDB0;大于90LEVEL1DB0;80分89分LEVE
4、L2DB0;70分79分LEVEL3DB0;60分69分LEVEL4DB0; 各分支語句序歹y *FA:CALLPROCA;調用PROCA程序塊JMPEXIT;每個分支結束,都要用 JMP旨令跳轉到所有分支結束的地方FB:CALLPROCB;調用PROC程序塊JMPEXITFC:CALLPROCC;調用PROC程 序塊JMPEXITFD:CALLPROCD;調用PROC程序塊JMPEXITFE:CALLPROCE;調用PROC程序塊JMPEXITFF:CALLPROCF;調用PROC程序塊JMPEXITFG:CALLPROCG;調用PROC程 序塊JMPEXITFH:CALLPROCH;調用P
5、ROCH程序塊JMPEXITFI:CALLPROCI;調用PROCI程序塊JMP EXITFJ:CALL PROCJ ;調用 PROCJ程序塊JMP EXIT;最后一個分支結束,JMP可以省略EXIT:MOV AX, 4C00HINT 21HPROCA PROCLEA DX, MSGAMOV AH, 9INT 21HRETPROCA ENDPPROCB PROCLEA DX, MSGBMOV AH, 9INT 21HRETPROCB ENDPPROCC PROCLEA DX, MSGCMOV AH, 9INT 21HRETPROCC ENDPPROCD PROCLEA DX, MSGDMOV
6、AH, 9INT 21HRETPROCD ENDPPROCE PROCLEA DX, MSGEMOV AH, 9INT 21HRETPROCE ENDPPROCF PROCLEA DX, MSGFMOV AH, 9INT 21HRETPROCF ENDPPROCG PROCLEA DX, MSGGMOV AH, 9INT 21HRETPROCG ENDPPROCH PROCLEA DX, MSGHMOV AH, 9INT 21HRETPROCH ENDPPROCI PROCLEA DX, MSGIMOV AH, 9INT 21HRETPROCI ENDPPROCJ PROCLEA DX, MS
7、GJMOV AH, 9INT 21HRETPROCJ ENDPCODEENDSEND START(2)DATASEGMENTPROMPT DB 0DH, 0AH, INPUT A CHAR (AJ): $MSGA)B 0DH, 0AH, FUNCTION A EXECUTED . $MSGB)B 0DH, 0AH, FUNCTION B EXECUTED . $MSGCDB 0DH, OAH, FUNCTION C EXECUTED . $MSGODB ODH, OAH, FUNCTION D EXECUTED . $MSGEB ODH, OAH, FUNCTION E EXECUTED .
8、$MSGFDB ODH, OAH, FUNCTION F EXECUTED . $MSGCDB ODH, OAH, FUNCTION G EXECUTED . $MSGH5B ODH, OAH, FUNCTION H EXECUTED . $MSGIDB ODH, OAH, FUNCTION I EXECUTED . $MSGJDB ODH, OAH, FUNCTION J EXECUTED . $ADDTBL DW FA,FB,FC,FD,FE,FF,FG,FH,FI,FJ;DATAENDSCODESEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, D
9、ATAMOV DS, AXINPUT:LEA DX, PROMPTMOV AH, 9INT 21H;輸出提示信息MOV AH, 1INT 21H;輸入一個數字CMP AL, AJB INPUT;不在AJ內,重新輸入CMP AL, JJA INPUT;不在AJ內,重新輸入SUB AL,A;將數字字符“ 1 ”至U “ 3”轉換為0, 1,2SHL AL, 1;轉換為 0, 2,4MOV BL, ALMOV BH, 0;轉入 BXJMP ADDTBLBX;間接尋址,轉移到對應程序塊FA:LEADX, MSGA ;FA 程序塊JMPOUTPUT;每個分支結束,都要用 JMP指令跳轉到所有分支結束的地
10、方FB:LEADX, MSGB ;FB 程序塊JMPOUTPUTFC:LEADX, MSGC ;FC 程序塊JMPOUTPUTFD:LEADX, MSGD ;FD 程序塊JMPOUTPUTFE:LEADX, MSGE ;FE 程序塊JMPOUTPUTFF:LEADX, MSGF ;FF 程序塊JMPOUTPUTFG:LEADX, MSGG ;FG 程序塊JMPOUTPUTFH:LEADX, MSGH ;FH 程序塊JMPOUTPUTFI:LEADX, MSGI ;FI 程序塊JMPOUTPUTFJ:LEADX, MSGJ ;FJ 程序塊JMPOUTPUT ;最后一個分支結束,JMP可以省略OU
11、TPUT:MOV AH, 9INT21H *各分支語句序列*v1.0可編輯可修改MOV AX, 4C00HINT 21HCODEENDSEND START找出三個數值居中3.8設在寄存器AX BX CX中存放的是16位無符號數,試編寫程序段, 的一個,并將其存入 BUFF字單元中。解:DATASEGMENTBUFF DW0DATAENDSCODESEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, DATAMOV DS, AXMOV AX,5MOV BX,3MOV CX,6CMP AX,BXJA L1JZ L2L0: CMP AX,CX ;AXBXJAE
12、L4;AXCXL2: CMP BX,CXJBE L5JMP L6CMP BX,CXJAE L5;BXCMP AX,CXJA L6L4: MOV BUFF,AXJMP DONEL5: MOV BUFF,BXJMP DONEL6: MOV BUFF,CXDONE:MOV AX, 4C00HINT 21HCODEENDSEND START3.9編寫確定一個十進制數x(2 w x w 200)是否是素數(質數)的程序。解:DATASEGMENTx DB 12;x(2 w xw 200)FLAGDB 0;X 是素數,FLAG=1,否則 FLAG=0DATAENDSCODESEGMENTASSUME DS
13、: DATA, CS: CODESTART:MOV AX, DATAMOV DS, AXMOV BL,2MOV BH,XSHR BH,1 ;計算測試范圍MOV FLAG,1 ;先假設x為素數NEXT:MOV AL,XMOV AH,0DIV BLCMP AH,0 ;余數為0,說明不是素數,退出JZ NOINC BLCMP BL,BHJZ EXIT ;到測試邊界,退出JMP NEXTNO: MOV FLAG,0EXIT:MOV AX, 4C00HINT 21HCODEENDSEND START3.10在以BLOCK為首地址的數據區(qū)域按著從小到大的順序存放了一個年級(180人)學生的匯編語言成績表。
14、試編寫程序將分數82插入到該數組合適的位置。解:DATASEGMENTBLOCK DB 1,3,5,7,9,12,15,25,35,36,37,40,42,46,57 ;學生的成績表,可根據實際填寫ST DB 39 ;另外一個學生的成績DATAENDSCODESEGMENTASSUME CS: CODE, DS: DATAMOV AX, DATAMOV DS, AXLEA SI, BLOCK+14 ;取成績表中最后一個學生成績的偏移地址給SIMOV CX, 15MOV AL, STCMPBLK: CMP AL, SI;要插入的學生成績比成績表中的成績小,則轉CHANGEJB CHANGEMOV
15、 SI+1,AL ;插入該學生成績JMP DONECHANGE: MOV BL,SI;把表中成績后移MOV SI+1,BLDEC SILOOPCMPBLKDONE:MOV AX, 4C00HINT 21HCODEENDSEND START試編寫3.11已知數組A中包含15個互不相等的整數,數據B中包含20個互不相等的整數,一程序,將即在 A數組中出現又在 B數組中出現的整數存放于數組C中。解:DATASEGMENTADB1,3,5,7,9,12,15,25,35,36,37,40,42,46,57BDB3,5,9,12,25,36,37,42,57,58,60,4,8,11,17,29,33,
16、44,55,66CDB20 DUP (0)DATAENDS23v1.0可編輯可修改CODESEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, ALEA BX, CMOV CX, 15CLDCMPAB:LODSB;從數組A中取出一個數LEA DI, BPUSH CXMOV CX, 20REPNZ SCASB ;與數組B中的元素比較JNZ LOP ;數據不同,比較下一個數MOV BX,AL;數據相同,則保存在數組 C中INC BXLOP: POP CXLOOPCMPABEXIT:MOV AX,
17、4C00HINT 21HCODEENDSEND STARTFlags、AX BX CX DX寄存器的內容,在子程3.12在某子程序的開始處要保護標志寄存器 序結束時要恢復它們的內容。例如:PUSHFPUSHAXPUSHBXPUSHCXPUSHDX試寫出恢復現場時的指令序列。解:POPDXPOPCXPOPBXPOPAXPOPF3.13什么叫主程序與子程序之間傳遞參數實現參數傳遞一般有哪幾種方法每種方法的適用場合解:3.14簡述嵌套調用和遞歸調用的不同。解:3.15在以BLOCK為首地址處存放100個無符號字節(jié)數。試編寫一程序,求出該數組中的最大數與最小數的差,并將其送入 RESULT單元,要求調
18、用子程序來完成對最大數和最小數解:的求解。DATASEGMENTBLOCK DB56,42,66,87,88,88,68,67,58,97,66,86,77COUNT EQU $-XXRESULT DB 0DATAENDSCODESEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, DATAMOV DS, AXMOV MIN, 100;假設最小的數MOV MAX, 0;假設最大的數LEA SI, BLOCKMOV CX, COUNTCALL MAXMINSUB AH,ALMOV RESULT,AHEXIT:MOV AX, 4C00HINT21HMAXMIN
19、 PROCMOV AH,0;存放大數MOV AL,255;存放小數AGAIN:MOV DL,SICMP AL,DLJBE SKIP1MOV AL,DL;比預設最小值還小,保留SKIP1:CMP AH,DLJAE SKIP2MOV AH,DL;比預設最大值還大,保留SKIP2:INC SILOOP AGAINRETMAXMIN ENDPCODEENDSEND START3.16某年級參加英語 4級考試的有250名學生,試編寫一程序完成60-69 , 70-79 , 80-89 ,90-100四個分數段的統(tǒng)計工作,要求用子程序完成每個分數段的統(tǒng)計工作。解:DATASEGMENTBLOCK DB 60,64,68,72,79,76,74,80,89,84,85,88,98,95,100 ;學生的成績表,可根據實際填寫COUNT60 DB0;存放成績在60-69的學生數COUNT70 DB0;存放成績在70-79的學生數COUNT80 DB0;存放成績在80-89的學生數COUNT90 DB0;存放成績在90-100的學生數DATAENDSCODESEGMENTASSUME CS: CODE, DS: DATASTART:MOV AX, DATAMOV DS, AXMOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年漢中資格證客運題庫
- 2024年沈陽客運駕駛從業(yè)資格證考試題庫答案
- 2024年武漢客運考試模擬題及答案詳解解析
- 2024年秦皇島小型客運從業(yè)資格證仿真考試題庫
- 超扎心測試測測你的生活關鍵詞是什么
- 城市燃氣初步設計
- 銀行入職心得體會范文7篇
- 高二生物備課組學期工作總結
- 工程測量實習報告15篇
- 運營主管競聘演講稿
- 1+X智能財稅考證理論考核試題及答案
- 2022年江蘇衛(wèi)生健康職業(yè)學院單招語文試題及答案解析
- 密閉空間安全作業(yè)常識培訓課件
- 中學生物教學論試卷及參考答案3
- 施工圖交接表
- 前 牙 深 覆 蓋深 覆 合 的 矯 治課件
- 古詩詞誦讀《燕歌行(并序)》教案+2022-2023統(tǒng)編版高中語文選擇性必修中冊
- 花椒產業(yè)發(fā)展分析報告
- 房屋交接驗收單表
- (新版)民航安全知識考試題庫(核心100題)
- 本科生畢業(yè)論文寫作指導課件
評論
0/150
提交評論