1、简单字符串处理系统的实现附:课程设计报告格式组成原理实践课程设计报告题目:简单字符串处理系统的实现 专业: 10信管 班级: 2班 学号: 1030050229 姓名: 陈维栋 指导教师: 孙桂煌 完成日期: 2013 年 01 月 05 日一、课程设计目的1、掌握并巩固顺序、分支、循环结构以及子程序结构的汇编程序设计基本技术和基本方法。2、理解计算机在指令系统级的运行原理,熟悉DOS功能子程序的调用。3、掌握输入输出子程序的编写。4、掌握从键盘输入字符(串)与在显示屏上显示字符(串)的基本方法。二、课程设计内容输入一个字符串,扫描该字符串,按数字、字母和特殊字符3类,把字符分类输出到屏幕,同
2、时输出各类字符的个数。三、课程设计过程1、算法设计(画出算法流程图)2.程序代码; multi-segment executable file template.data segment ; add your data here! strbuf db 50,?,50 dup($) digit db 50 dup($) char db 50 dup($) special db 50 dup($) digit_count db 0 char_count db 0 special_count db 0 string1 db please input a string:$ string2 db out
3、put digit :$ string3 db output char:$ string4 db output special:$endsstack segment dw 128 dup(0)endscode segmentstart:; set segment registers: mov ax, data mov ds, ax mov es, ax ; add your code here lea dx,string1 mov ah,9 int 21h ;给出友好提示输入信息 lea dx,strbuf mov ah,0ah int 21h ;从键盘接收输入的信息(包括回车) mov dl
4、,0ah mov ah,2 ;在显示器上显示一个字符 int 21h mov dl,0dh mov ah,2 int 21h ;实现回车换行 mov cl,strbuf+1 mov SI,0next: mov al,strbuf+2SI cmp al,0 jb spec cmp al,9 jbe dig cmp al,A jb spec cmp al,Z jbe cha cmp al,a jb spec cmp al,z jbe cha cmp al,z jnbe spec spec: xor bx,bx mov bl , special_count mov specialbx , al in
5、c special_count inc SI dec cl cmp cl, 0 jnz next ;cl!=0时跳转 jmp next2dig: xor bx,bx mov bl,digit_count mov digitbx ,al inc digit_count inc SI dec cl cmp cl, 0 jnz next ;cl!=0时跳转 jmp next2cha: xor bx,bx mov bl,char_count mov charbx ,al inc char_count inc SI dec cl cmp cl, 0 jnz next ;cl!=0时跳转 jmp next
6、2 next2: lea dx,string4 mov ah,9 int 21h ;给出友好提示信息 lea dx, special mov ah, 9 int 21h ; 显示所有的字符串 mov dl,0ah mov ah,2 ;在显示器上显示一个字符 int 21h mov dl,0dh mov ah,2 int 21h ;实现回车换行 lea dx,string3 mov ah,9 int 21h ;给出友好提示输入信息 lea dx, char mov ah, 9 int 21h ; 显示所有的字符串 mov dl,0ah mov ah,2 ;在显示器上显示一个字符 int 21h
7、mov dl,0dh mov ah,2 int 21h ;实现回车换行 lea dx,string2 mov ah,9 int 21h ;给出友好提示输入信息 lea dx, digit mov ah, 9 int 21h ; 显示所有的字符串 mov dl,0ah mov ah,2 ;在显示器上显示一个字符 int 21h mov dl,0dh mov ah,2 int 21h ;实现回车换行 ; wait for any key. mov ah, 1 int 21h mov ax, 4c00h ; exit to operating system. int 21h endsend start ; set entry point and stop the assembler3、系统运行结果截图运行准备输入数据:输入数据后得到的结果:四、课程设计体会加深巩固顺序、分支、循环结构以及子程序结构的汇编程序设计基本技术和基本方法。理解计算机在指令系统级的运行原理,能够熟悉调用DOS功能子程序。知道输入输出子程序的编写。自己会从键盘输入字符(串)与在显示屏上显示字符(串)的基本方法。