- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
贵 州 大 学 实 验 报 告 纸
系 别
电信学院
班 级
电科061
姓 名
郑伟
学号
060712110091
课 程 名 称
微机原理实验
成 绩
评 定
教师签名
实 验 时 间
2008年 月 日
实验题目:实验六 字符处理程序实验
1. 实验目的 (1) 熟悉串操作指令的功能与应用 (2) 掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。2.实验内容 (1) 字符串统计。自STRN开始的存储区中,有一个字符串,统计其中含有小写字母的个数,将统计结果以两 位十进制数显示在屏幕上。 (2) 在给定的字符串中,删除重复的字符,其余的字符向前递补。3. 实验准备 (1)熟悉字符处理的方法和字符处理程序的设计; (2)认真预习有关串操作的指令极其寻址方式的特点,能够正确使用串操作指令,并准备好数据。 (3) 按正常的方法将删除字符程序编成子程序,规定子程序的入口和出口参数。4.实验步骤(1)用1号系统调用从键盘键入一个字符串,然后统计其中小写字母的个数。程序每次执行,都能得到不同的结果。(2)实验2可参考教材第五章练习10的解法,但要编写一个在同一个字符串中删除字符,并将其余字符向前递补的程序。5. 实验调试后的程序清单:
(1)统计小写字母个数的程序清单:;COUNTDC.ASMDATA? SEGMENT STRN? DB 80 DUP(?)DATA? ENDSCODE? SEGMENT??????? ASSUME CS:CODE, DS:DATASTART: MOV? AX, DATA MOV? DS, AX LEA?? DI, STAN MOV? CL, 0AGAIN: MOV? AH, 1?????? INT? 21H ;用1号系统调用从键盘键入一个字符串。 CMP? AL,0DH ;空格不显示 JZ?? DONE MOV? [DI],AL INC? DI INC? DL JMP? AGAINDONE: LEA? SI,STRN 贵州大学实验报告 附 页
MOV? CH,0 MOV? BL,0 CLD DF=0,递增操作。CYCLE: LODSB?????? CMP? AL,61H CMP? AL,7AH JA? NEXT INC? BLNEXT: LOOP? CYCLE MOV? AL,BL MOV? AH,0 MOV? CL,10 ;将十六进制结果转化为两位十进制数 DIV? CL?????????????????? 十位数在AL中,个位数在AH中。
PUSH AX
MOV DL,0DH MOV AH,2 INT 21H ;回车换行 MOV?DL,OAH
???????? MOV AH, 2
INT?21H
POP AX XCHG? AH,AL?????????????
PUSH AX MOV? DL,AH OR? DL,30H INT? 21H
POP AX ;显示两位十进制数 MOV? DL,AL
OR? DL,30H
MOV AH,2 INT? 21H MOV? AH,4CH INT? 21HCODE: ENDS END START
(2)删除字符串中重复字符的源程序清单:
DATA SEGMENT
STRN DB 80 ,?,80 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:COD
文档评论(0)