




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、分類統(tǒng)計(jì)字符個數(shù)1、 實(shí)驗(yàn)?zāi)康耐ㄟ^編程實(shí)現(xiàn)字符進(jìn)行分類統(tǒng)計(jì)。利用DOS功能調(diào)用INT 21H的10(0Ah)號功能,掌握進(jìn)行鍵盤輸入字符串的方法以及數(shù)據(jù)區(qū)設(shè)置。掌握8086指令: CMP、JB、JA、SHL、INC、LEA、INT、JNZ、SCASB、LOOPE/LOOPNE等。2、 實(shí)驗(yàn)內(nèi)容1、編寫一個程序?qū)崿F(xiàn)將數(shù)據(jù)段中存儲在STRING處到NUM處的字符串進(jìn)行分類統(tǒng)計(jì),然后將結(jié)果存入以letter、digit和other為名的存儲單元中。查找字符串STRING中是否有空格,如有找出第一個出現(xiàn)的位置(先用十六進(jìn)制顯示,后修改為十進(jìn)制顯示),否則輸出N。2、修改前述1的程序,實(shí)現(xiàn)從鍵盤輸入一個
2、以回車鍵作為結(jié)束符的字符串(字符個數(shù)不超過80個),存入BUF中,分類統(tǒng)計(jì)BUF中字符串,將結(jié)果存入以letter、digit和other為名的存儲單元中,屏幕輸出大小寫字母個數(shù)、數(shù)字個數(shù)和其它字符個數(shù),并查找字符串BUF中是否有空格,如有找出第一個出現(xiàn)的位置(用十進(jìn)制顯示),否則輸出N。(對有余力的同學(xué))實(shí)驗(yàn)結(jié)果:DEBUG 調(diào)試并查看結(jié)果的正確性。對存儲區(qū)STRING的內(nèi)容“12ABCDE#!Y(78)=(1).”屏幕顯示:N對存儲區(qū)STRING的內(nèi)容“12ABCD E#! Y(78)=(1).”屏幕顯示:Place=7對第2部分,如鍵盤輸入12ABCDE# 3456789143!Y(78
3、)=(1).回車輸出結(jié)果:Letter=6Digit=15Other=9Place=93、 分析與體會本次實(shí)驗(yàn)我花了較長的時間來完成。初略的程序花了5個多小時完成。后來遇到轉(zhuǎn)換為十進(jìn)制的時候就卡住了。后來在第六周周三的時候聽了課以后才會做。第一個代碼很長,有340多行代碼。其實(shí)核心代碼不多。主要是每一次轉(zhuǎn)換為16進(jìn)制以及10進(jìn)制的時候,重復(fù)了相同的代碼。還有換行也重復(fù)了幾次。第二個代碼不同的是自己輸入字符。我自學(xué)了子程序。然后把轉(zhuǎn)換為10進(jìn)制和輸出換行設(shè)置成了子程序。精簡了代碼。4、 代碼鍵盤輸入字符串,分類統(tǒng)計(jì) STACKS SEGMENT STACK DW 128 DUP(?) STACK
4、S ENDS DATAS SEGMENT STRING DB 100 DUP(?) NUM DW ? STR1 DB 'Letter=$' STR2 DB 'Digit=$' STR3 DB 'Other=$' STR4 DB 'Place=$' DIGIT DW 0 OTHER DW 0 LETTER DW 0 PLACE DW ? FLAG DW 0 DATAS ENDS CODES SEGMENT MAIN PROC FAR ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV D
5、S,AX MOV SI,0 INPUT: MOV AH,1 INT 21H ;輸入一個字符,存到AL CMP AL,0DH ;判斷是否是回車 JE NEXT0 ;是回車輸入就結(jié)束 MOV STRINGSI,AL INC SI JMP INPUT NEXT0: MOV NUM,SI MOV BX,NUM LEA SI,STRING NEXT: MOV AL,SI CMP AL,30H JB COTHER ;小于 30H 是其他字符 CMP AL,3AH JBE CDIGIT ;30H-3AH 是數(shù)字 CMP AL,41H JB COTHER ; 3AH-40H是其他字符 CMP AL,5AH J
6、BE CLETTER ; 41H-5AH是大寫字母 CMP AL,61H JB COTHER ;5BH-60H是其他字符 CMP AL,7AH JBE CLETTER ;61H-7AH是小寫字母 ;大于 7AH 是其他字符 COTHER: INC OTHER JMP P2 CDIGIT: INC DIGIT JMP P2 CLETTER: INC LETTER JMP P2 P2: DEC BX JZ OUTPUT INC SI JMP NEXT OUTPUT: CALL PRIENTER MOV AH, 9 ;letter MOV DX, SEG STR1 MOV DS, DX MOV DX
7、, OFFSET STR1 INT 21H MOV BX,LETTER CALL TOTEN ;調(diào)用轉(zhuǎn)換為十進(jìn)制的子程序 CALL PRIENTER ;調(diào)用換行 MOV AH, 9 ;digit MOV DX, SEG STR2 MOV DS, DX MOV DX, OFFSET STR2 INT 21H MOV BX,DIGIT CALL TOTEN CALL PRIENTER MOV AH, 9 ;other MOV DX, SEG STR3 MOV DS, DX MOV DX, OFFSET STR3 INT 21H MOV BX,OTHER CALL TOTEN CALL PRIENT
8、ER MOV AH, 9 ;space MOV DX, SEG STR4 MOV DS, DX MOV DX, OFFSET STR4 INT 21H MOV BX,NUM ;找第一個空格的位置 LEA SI,STRING AGAIN: MOV AL,20H CMP AL,SI JE P1 DEC BX JZ OVER INC SI JMP AGAIN OVER: MOV PLACE,4EH ;4EH 為 N ,找不到輸出 N MOV DX,PLACE MOV AH,2 INT 21H JMP EXIT ;退出 結(jié)束 P1: INC SI ;下標(biāo)與位置的轉(zhuǎn)換 ,需加 1 MOV PLACE,S
9、I MOV BX,PLACE CALL TOTEN CALL PRIENTER JMP EXIT ;十進(jìn)制輸出的子程序,小于十六位二進(jìn)制的數(shù)可以輸出;原理是把原數(shù)除10000,取值,余數(shù)除1000,取值,再次得到的余數(shù);除100,取值,再將余數(shù)除10,取值,取余 TOTEN PROC NEAR CMP BX,0 JG P111 MOV DL,30H MOV AH,2 INT 21H JMP RETURN P111: MOV FLAG,0 MOV DI,10000 P15: MOV DX,0 MOV AX,BX DIV DI MOV BX,DX MOV DL,AL CMP DL,0 JE P101 MOV FLAG,1 P102: ADD DL,30H MOV AH,2 INT 21H P16: MOV AX,DI MOV DX,0 MOV CX,10 DIV CX MOV DI,AX CMP DI,0 JG P15 JMP RETURN P101: CMP FLAG,0 JE P16 JMP P102 RETURN: RET TOTEN ENDP PRIEN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 木材定金合同范本
- 會計(jì)臨時勞務(wù)合同范本
- 勞務(wù)派遣合同范本購買
- 協(xié)議證明合同范本
- 業(yè)委會與物業(yè)委托合同范本
- 別墅規(guī)劃合同范本
- 區(qū)域保護(hù)合同范本
- 農(nóng)村房子修繕承包合同范本
- 公園門衛(wèi)服務(wù)合同范本
- 包裝費(fèi)合同范本
- 物業(yè)服務(wù)行業(yè)禮儀培訓(xùn)
- 退市新規(guī)解讀-上海證券交易所、大同證券
- 教育部中國特色學(xué)徒制課題:現(xiàn)代職業(yè)教育體系建設(shè)背景下中國特色學(xué)徒制治理體系與資源配置研究
- 22陳涉世家 司馬遷 公開課一等獎創(chuàng)新教學(xué)設(shè)計(jì) 度部編版初中語文九年級下冊
- 2021年飽和蒸汽及過熱蒸汽焓值表
- 《抗戰(zhàn)中的英雄人物》課件
- 外墻真石漆施工方案
- 森林防火安全生產(chǎn)工作
- 護(hù)理工作十四五規(guī)劃
- 《服裝市場營銷》課件
- 網(wǎng)絡(luò)安全風(fēng)險評估報(bào)告模板
評論
0/150
提交評論