版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
XX理工大學(xué)微機(jī)原理程序設(shè)計(jì)
實(shí)驗(yàn)一
實(shí)驗(yàn)要求:
試編寫一個(gè)程序,要求比擬數(shù)組ARRAY中的三個(gè)16位補(bǔ)碼數(shù),并根據(jù)比擬結(jié)果在顯示終
端上顯示如卜信息:
(1)如果三個(gè)數(shù)都不相等那么顯示0;
(2)如果三個(gè)數(shù)有兩個(gè)相等那么顯示1;
(3)如果三個(gè)數(shù)都相等那么顯示2。
程序流程圖:
程序清單:
DATASEGMENT
ARRAYDW1,2,3
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:MOVAX,DATA
MOVDS,AX
MOVAX,ARRAY
MOVBX,ARRAY+2
MOVCX,ARRAY+4
CMPAX,BX
JE
CMPBX,CX
JELI
CMPAX,CX
JELI
MOVDL,30H
JMPEXIT
L:CMPBX,CX
JNELI
MOVDL,32H
JMPEXIT
LI:MOVDL,31H
EXIT:MOVAH,2
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
運(yùn)行結(jié)果:
ARRAY中二個(gè)數(shù)互不不相等:
圈DOSBox0.74,Cpuspeed:3000cycles.Frameskip0,Program:DWTEMP
0
Pressanykeytocontinue
ARRAY中三個(gè)數(shù)有兩個(gè)相等:
圖DOSBox0.74,Cpuspeed:3000cycles,Frameskip0,Prograrr
1
Pressanykeytocontinue_
ARRAY中三個(gè)數(shù)都相等:
圜DOSBox0.74,Cpuspeed;3000cycles.Frameskip0,Program
Pressanykeytocontinue_
實(shí)驗(yàn)二
實(shí)驗(yàn)要求:
從鍵盤輸入一系列字符[以回車符結(jié)束),并按字母、數(shù)字及其它字符分類計(jì)數(shù),最后顯示
出這三類計(jì)數(shù)結(jié)果。
程序流程圖:
程序清單:
DATASEGMENT
COUNT_OF_LETTERDB'thenumberofletteris
COUNTOFNUMBERDB,thenumberofnumberis
COUNTOFCHARACTERDB'thenumberofcharateris
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVBH,()
MOVBL,0
MOVCL,0
NEXT:
MOVAH,1
INT21H
CMPAL,0DH
JEEXIT
CMPAL,30H
JBCOUT_OF_CHARATER_ADD
CMPAL,39H
JBECOUT_OF_NUMBER_ADD
CMPAL,41H
JBCOUT_OF_CHARATER_ADD
CMPAL,5AH
JBECOUNT_OF_LETTER_ADD
CMPAL,61H
JBCOUT_OF_CHARATER_ADD
CMPAL,7AH
JBECOUNT_OF_LETTER_ADD
COUT_OF_CHARATER_ADD:
INCCL
JMPNEXT
COUT_OF_NUMBER_ADD:
INCBL
JMPNEXT
COUNT_OF_LETTER_ADD:
INCBH
JMPNEXT
EXIT:
CALLCRLF
LEADX,COUNT_OF_LETTER
MOVAH,09
INT21H
MOVAL,BH
CALLBIN_DEC
CALLCRLF
LEADX,COUNT_OF_NUMBER
MOVAH,09
INT21H
MOVAL,BL
CALLBIN_DEC
CALLCRLF
LEADX,COUNT_OF_CHARACTER
MOVAH,09
INT21H
MOVAL,CL
CALLBIN_DEC
CALLCRLF
RET
CRLFPROCNEAR
MOVAH,02
MOVDL,0DH
INT21H
MOVAH,02
MOVDL,()AH
INT21H
RET
CRLFENDP
BIN_DECPROCNEAR
PUSHBX
PUSHCX
ANDAX,()()FFH
MOVCX,0
MOVBX,0
MOVDLJO
ROTATE:
DIVDL
MOVBL,AH
ANDAX,()()FFH
PUSHBX
INCCX
CMPAX,10
JAEROTATE
MOVBX,AX
PUSHBX
INCCX
CONTINUE:
POPBX
ADDBL,30H
MOVDL,BL
MOVAH,()2H
INT21H
LOOPCONTINUE
POPCX
POPBX
RET
BIN_DECENDP
CODEENDS
ENDSTART
運(yùn)行結(jié)果:
出C:\WINNT\system32\cmd.exe
ajskjklkn65682131,;'?/;'09
thenumberofletteris08
thenumberofnumberis08
thenumbero£charactei*
Pressanykeytocontinue
實(shí)驗(yàn)三
實(shí)驗(yàn)要求:
假設(shè)已編制好五個(gè)歌曲程序,它們的段地址和偏移地址存放在數(shù)據(jù)段的跳轉(zhuǎn)表SONGLIST
中。試編一程序,根據(jù)從鍵盤輸入的歌曲編號(hào)1?5,轉(zhuǎn)去執(zhí)行五個(gè)歌曲程序中的一個(gè)。
程序流程圖:
結(jié)束
程序清單:
DATASEGMENT
SONGLISTDWMUSIC1,MUS1C2,MUSIC3,MUSIC4,MUSIC5
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
READLIST:
MOVAH,1
INT21H
SUBAL,'O'
CMPAL,0
JEEXIT
CMPAL,5
JAREADLIST
DECAL
MOVBX,0
MOVBL,AL
ADDBX,BX
JMPSONGLISTfBX]
JMPREADLIST
MUSIC1:
MOVDL,T
MOVAH,2
INT21H
JMPEXIT
MUSIC2:
MOVDL,2
MOVAH,2
INT21H
JMPEXIT
MUSIC3:
MOVDL,3
MOVAH,2
INT21H
JMPEXIT
MUSIC4:
MOVDL,4
MOVAH,2
INT21H
JMPEXIT
MUSIC5:
MOVDL,5
MOVAH,2
INT21H
JMPEXIT
EXIT:
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
運(yùn)行結(jié)果:
叵C:\WINNT\system32\cmd.exe
Pressanykeytocontinue
回C:\WINNT\system32\cmd.exe
33
Pressanykeytocontinue
實(shí)驗(yàn)四
實(shí)驗(yàn)要求:
試編寫一個(gè)程序,從鍵盤接?(攵一個(gè)個(gè)位數(shù)N,然后響鈴N次。(響鈴的ASCH碼為07H)。
程序流程圖:
程序清單:
DATASEGMENT
TIPDB'PLEASEINPUTANUMBER:',$
DATAENDS
CODESSEGMENT
ASSUMECS:CODES,DS:DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,TIP
MOVAH,09H
INT21H
MOVAH,01H
INT21H
ANDAX,01H
MOVCX,AX
BE:MOVDL,07H
MOVAH,02H
INT21H
LOOPBE
CODESENDS
ENDSTART
運(yùn)行結(jié)果■
C:\WINNT\system32\cmd.exe
PLEASEINPUTANUMBER:
輸入數(shù)字后聽到對(duì)應(yīng)次數(shù)的響鈴
實(shí)驗(yàn)五
實(shí)驗(yàn)要求:
從鍵盤輸入一系列以$為結(jié)束符的字符串,然后對(duì)其中的非數(shù)字字符計(jì)數(shù),并顯示計(jì)數(shù)結(jié)
果。
程序流程圖:
I開始
是
程序清單:
DATASEGMENT
SIDBODH,OAH;PLEASEINPUT:$'
S2DBODH,OAH;TOTALNON_DIGITALARE:$*
NUMDB0
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
LEADX,S1
MOVAH,9
1NT2IH
NEXT:
MOVAH,01
INT21H
CMPAL;$'
JEDOWN
CMPAL;0'
JBNO09
CMPAL,9
JANO09
JMPNEXT
NO09:
INCNUM
JMPNEXT
DOWN:
LEADX,S2
MOVAH,9
INT21H
MOVAL,NUM
MOVAH,()
MOVDLJOO
DIVDL
CALLDISP_P
MOVAL,AH
MOVAH,0
MOVDLJO
DIVDL
CALLDISP_P
XCHGAH,AL
CALLDISP_P
RET
DISP_PPROCNEAR
PUSHAX
MOVDL,AL
ADDDL,30H
MOVAH,2
INT21H
POPAX
RET
DISP_PENDP
CODEENDS
ENDSTART
運(yùn)行結(jié)果:
Pleaseinput:BJKHG6546872$
Totalnon_digitalare:005
Pleaseinput:
實(shí)驗(yàn)六
實(shí)驗(yàn)要求:
試編制一個(gè)程序,把AX中存放的16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼,并將對(duì)應(yīng)的ASCII碼依次
存放在MEM數(shù)組中的四個(gè)字節(jié)中。例如:當(dāng)(AX)=2A49H時(shí),程序執(zhí)行完后,MEM
中的四個(gè)字節(jié)的內(nèi)容為39H,34H,41H,32H。
程序流程圖:
宏定義
輸入一個(gè)16進(jìn)制數(shù)并送給AX
將AX中數(shù)轉(zhuǎn)換為ASCII碼形式
將各ASCH碼由低位依次送給MEM四個(gè)字節(jié)
顯示MEM中的內(nèi)容
程序清單:
DATASEGMENT
MEM4DUP(?)
NDW2A49H
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
BEGIN:
MOVCH,4
MOVCL,4
MOVAX,N
LEABX,MEM
ROTATE:
MOVDL,AL
ANDDL,0FH
ADDDL,30H
CMPDL,3AH
JLNEXT
ADDDL,07H
NEXT:
MOV[BX],DL
INCBX
RORAX,CL
DECCH
JNZROTATE
RET
CODEENDS
ENDSTART
運(yùn)行結(jié)果:
實(shí)驗(yàn)七
實(shí)驗(yàn)要求;
設(shè)有十個(gè)學(xué)生的成績分別是76,69,84,90,73,88,99,63,100,80分,試編制一個(gè)
子程序統(tǒng)計(jì)60?69分,70?79分,80?89分,90?99分和100分的人數(shù),分別存放在
S6,S7,S8,S9和S10單元中。
程序流程圖:
程序清單:
DATASEGMENT
RESULTDB()DH,()AH;THERESULT$,
GRADEDW76,69,84,90,73,88,99,63/00,80
S6DB0
S7DB0
S8DB0
S9DB0
S10DB0
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVCX,1()
CALLCOUNT
CALLDISP
MOVAH,1
INT2IH
RET
COUNTPROCNEAR
MOVSI,0
NEXT:
MOVAX,GRADE[SI]
MOVBL,10
DIVBL
MOVBL,AL
MOVBH,0
SUBBX,6
CMPBX,0
JAENEXT1
NEXT1:
INCS6[BX]
ADDSI,2
LOOPNEXT
RET
COUNTENDP
DISPPROCNEAR
LEASI,S6
MOVCX,5
LOOP1:
MOVDX,OFFSETRESULT
MOVAH,9
INT21H
MOVDL,[SI]
ADDDL,30H
MOVAH,2
INT21H
INCSI
LOOPLOOP1
RET
DISPENDP
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
運(yùn)行結(jié)果:
C:\WINDOWS\syste?32\c?d.exe
2
theresult2
theresult3
theresult2
theresult1
theresult
實(shí)驗(yàn)八
實(shí)驗(yàn)要求:
編寫一個(gè)子程序嵌套的程序模塊,分別從鍵盤輸入姓名和號(hào)碼(8位),并以一定的格
式顯小出來。
主程序TELLIST:
?顯示提示符INPUTNAME:;
?調(diào)用子程序INPUT.NAME輸入姓名;
?顯示提示符INPUTATELEPHONENUMBER:;
?調(diào)用子程序INPUT_PHONE輸入號(hào)碼;
?調(diào)用子程序PRINT顯示姓名和號(hào)碼。
子程序INPUT_NAME:
?調(diào)用鍵盼輸入子程序GET_CHAR,把輸入的姓名存放在IN_BUFFER緩沖區(qū)中;
?把1N_BUEEEK緩沖區(qū)中的姓名移入輸出行OUT_NAME。
子程序INPUT_PHONE:
?調(diào)用鍵底輸入子程序GET_CHAR,把輸入的號(hào)碼存放在IN_BUFFER緩沖區(qū)中;
?把IN_BUFFER緩沖區(qū)中的號(hào)碼移入輸出行OUT_PIIONEo
子程序PRINT:
顯示姓名及號(hào)碼,格式為:
NAMETELPHONE
XXXXXX
子程序CET_CHAR:
從鍵盤輸入取回車符結(jié)尾的字符串。
程序流程圖:
程序清單:
DATASEGMENT
NO_OF_NAMEDB20
NO_OF_PHONEDB8
INBUFDB20DUP(?)
OUTNAMEDB20DUP(?),$
OUTPHONEDB8DUP(?),$
MESSAGE1DBPLEASEINPUTNAME:;$
MESSAGE2DB'PLEASEINPUTATELEPHONENUMBER:?*'
MESSAGESDB'NAME16DUP(20H);TEL.'J3J0;$'
ERRORMESSAGE1DB'YOUSHOULDINPUT8NUMBERS!,,13,10;$'
ERRORMESSAGE2DB'YOUINPUTAWRONGNUMBER!」3』(),$
FLAGDB?
DATAENDS
CODESEGMENT
ASSUMECS:CODE,DS:DATA
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVFLAG,()
LEADX,MESSAGE1
MOVAH,09
INT21H
CALLINPUT_NAME
CALLCRLF
LEADX,MESSAGE2
MOVAH,09
INT21H
CALLINPHONE
CALLCRLF
CMPFLAG,1
JEEXIT
CALLPRINTLINE
EXIT:
RET
INPUT.NAMEPROCNEAR
PUSHAX
PUSHDX
PUSHCX
MOVCX,0
MOVCL,NO_OF_NAME
CALLGETCHAR
MOVAX,0
MOVAL,NO_OF_NAME
SUBAX,CX
MOVCX,AX
MOVSl,0
NEXT1:
MOVAL,INBUF[SI]
MOVOUTNAME[SI],AL
INCSI
LOOPNEXT1
POPCX
POPDX
POPAX
RET
INPUT_NAMEENDP
INPHONEPROCNEAR
PUSHAX
PUSHDX
MOVCX,0
MOVCL,NO_OF_PHONE
CALLGETCHAR
CMPCX,0
JNZERROR1
MOVCL,NO_OF_PHONE
MOVSI,0
NEXT2:
MOVAL,INBUF[SI]
CMPAL,30H
JLERROR2
CMPAL,39H
JAERROR2
MOVOUTPHONE[SI],AL
INCSI
LOOPNEXT2
JMPEXIT2
ERROR1:
CALLCRLF
LEADX,ERRORMESSAGE1
MOVAH,09
INT21H
MOVFLAG,1
JMPEXIT2
ERROR2:
CALLCRLF
LEADX,ERRORMESSAGE2
MOVAH,09
INT21H
MOVFLAG,1
JMPEXIT2
EXIT2:
POPDX
POPAX
RET
INPHONEENDP
GETCHARPROCNEAR
PUSHAX
PUSHDX
MOVDI,0
ROTATE:
MOVAH,01
INT21H
CMPAL,0DH
JEEXIT1
MOVINBUF[DI],AL
INCDI
LOOPROTATE
EXIT1:
POPDX
POPAX
RET
GETCHARENDP
CRLFPROCNEAR
PUSHAX
PUSHDX
MOVDL,0DH
MOVAH,2
INT21H
MOVDL,0AH
MOVAH,2
INT21H
POPDX
POPAX
RET
CRLFENDP
PRINTLINEPROCNEAR
PUSHAX
PUSHDX
LEADX,MESSAGES
MOVAH,09
INT21H
LEADX,OUTNAME
MOVAH,09
INT21H
LEADX,OUTPHONE
MOVAH,09
INT21H
POPDX
POPAX
RET
PRINTLINEENDP
CODEENDS
ENDSTART
運(yùn)行結(jié)果:
c'C:\¥IliDO¥S\syste-32\c?d.exe
pleaseinputname:zhlintao
pleaseinputatelephonenumber:12345678
NAMETEL.
zhlintao12345678
Pressanykeytocontinue.
實(shí)驗(yàn)九
實(shí)驗(yàn)要求:
從鍵盤輸入一個(gè)不大于65535的無符號(hào)數(shù),然后把它轉(zhuǎn)換成等值的二進(jìn)制數(shù),最后把該數(shù)
以十六進(jìn)制數(shù)的形式在顯示器上顯示出來。編程實(shí)現(xiàn)。(將有獨(dú)立功能的程序用子程序獨(dú)立
出來)
程序流程圖:
開始
是
程序清單:
DATASEGMENT
BUF1DB20
DB9
DB2()DUP(?)
BUF2DB20
DB9
DB20DUP(?)
INPUTDB'INPUTS'
OUTPUTDB'OUTPUT*
CTRLDB0DH,0AH,$
SHIDWOAH
IINTDW0
DATAENDS
STACKSEGMENT
DB200DUP(O)
STACKENDS
CODESEGMENT
ASSUMECS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中醫(yī)基礎(chǔ)理論知識(shí)與應(yīng)用實(shí)踐試題中藥知識(shí)與方劑運(yùn)用
- 2026年中考語文古詩文閱讀理解訓(xùn)練題目
- 2026年國際商務(wù)談判技巧練習(xí)題提升跨文化溝通能力
- 2026年歷史小說鑒賞者初級(jí)試題模擬
- 客服售后回訪培訓(xùn)
- 2026年廣西工商職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試參考題庫含詳細(xì)答案解析
- 外貿(mào)知識(shí)分享教學(xué)
- 2026年硅湖職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試模擬試題含詳細(xì)答案解析
- 2026年天津交通職業(yè)學(xué)院單招綜合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年南充電影工業(yè)職業(yè)學(xué)院單招綜合素質(zhì)考試參考題庫含詳細(xì)答案解析
- 競聘培訓(xùn)教學(xué)課件
- 2026年銅陵安徽耀安控股集團(tuán)有限公司公開招聘工作人員2名考試備考題庫及答案解析
- 電荷轉(zhuǎn)移動(dòng)力學(xué)模擬-洞察及研究
- 模具生產(chǎn)質(zhì)量控制流程手冊(cè)
- 基于表型分型的COPD患者呼吸康復(fù)與營養(yǎng)支持策略優(yōu)化
- 刮痧療法培訓(xùn)課件
- 骨科圍手術(shù)期病人營養(yǎng)支持
- LNG氣化工程項(xiàng)目可行性研究報(bào)告
- 中東地區(qū)禮儀規(guī)范
- 廣告牌吊裝安裝施工方案
- 豆制品企業(yè)生產(chǎn)過程節(jié)能降耗方案
評(píng)論
0/150
提交評(píng)論