微机原理课程设计报告_第1页
微机原理课程设计报告_第2页
微机原理课程设计报告_第3页
微机原理课程设计报告_第4页
微机原理课程设计报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微 机 课 程 设 计 报 告班级:姓名:学号:任务一:1、目的:字符串匹配的设计要求:为掌握提示信息的设置方法及读取键入信息的方法。编写程序实现两个字符串比较,如相同,则显示“MATCH”;否则,显示“NO MATCH”。2、流程图显示“NO MATCH”SI加1,指向下一字符字符已取完?返回 DOS相等?显示“MATCH”入口初始化显示请输入字符串1 用INT 21H的0AH号子功能,接收字符串显示请输入字符串2SI指向串1的首字符SI指向的字符和字符串2比较NYNY3、源程序:DATAS SEGMENT s1 db please input the first string:,$ st1

2、 db 100 db ? db 100 dup(?) s2 db 0ah,plaese input the second string:,$ st2 db 100 db ? db 100 dup(?) s3 db 0ah,matah,$ s4 db 0ah,no match,$ ;此处输入数据段代码 DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS MOV DS,AX mov dx,offset s1 ;显示提示信息1

3、 mov ah,9h int 21h mov dx,offset st1 ;接收键入的字符串1 mov ah,0ah int 21h mov dx,offset s2 ; 显示提示信息2 mov ah,9h int 21h mov dx,offset st2 ;接收键入的字符串2 mov ah,0ah int 21h mov si,offset st1 ;字符串1的地址送给SI mov di,offset st2 ; 字符串2的地址送给DI mov ax,0 lp1: mov bl,si+1 ; 字符串1的字符数送给bl cmp bl,di+1 ;字符串2的字符数与字符串1相比较 jnz lp

4、4 ;不等转lp4 mov al,si+1 mov cx,ax ; 给cx赋字符串1的字符数 lp2: mov bl,si+2 ; 字符串1的第一个字符在字符串2中匹配 cmp bl,di+2 jnz lp4 inc si inc di loop lp2 ;循环cx内容减1,cx不等于0,继续循环,跳转lp2 lp3: mov dx,offset s3 mov ah,9h int 21h jmp nextlp4: mov dx,offset s4 mov ah,9h int 21h ;此处输入代码段代码next: MOV AH,4CH INT 21HCODES ENDS END START4、

5、结果:5、心得要先比较字符串的长度,前面要先分别定义和,并且应该保留足够的字节空间。任务二:1、目的:字符和数据的显示设计 要求:为掌握字符和数据的显示方法。编写程序,先显示信息:INPUTSTRING,THE END FLAG IS$,在接受字符。如为0-9,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数。2、流程图3、源程序:DATA SEGMENT DATA1 DB 40 DUP(?) DISPP1 DB input string,the end flag is CR,quit with ctrl-c,0DH,0AH,$ DISPP2 DB 0DH,0AH,$ DISPP3

6、DB the input string is:,$DATA ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATA;规定CS,DS的内容START: MOV AX,DATA MOV DS,AX ;DS初始化为DATA L5: MOV SI,00H MOV CL,00H ;寄存器清零 MOV BX,OFFSET DATA1 ;把DATA1偏移地址放入BX中 LEA DX,DISPP1 MOV AH,9 INT 21H;调用int 21的09功能,输出字符串L1: MOV AH,1 INT 21H;从键盘输入字符,放入AH中 CMP AL,03H JZ L4 ;如果是结

7、束字符,则程序结束并返回 CMP AL,0DH JZ L3 ;如果输入是回车,则转到L3程序 MOV BX+SI,AL ;AL中值放入BX中,SI所指向的地址中 INC SI;SI自加1 CMP AL,30H JNB kk JMP L1kk: CMP AL,39H JNA L2 JMP L1L2: INC CL JMP L1 ;如果输入不在1到9范围内,则转到L1程序 L3: LEA DX,DISPP2 MOV AH,9 INT 21H;调用int 21的09功能,输出字符串 LEA DX,DISPP3 ;取DISSP3首地址送到DX中 MOV AH,9 INT 21H ;调用int 21的0

8、9功能,输出字符串 ADD CL,30H MOV BX+SI+1,CL;AL中值放入BX中,SI所指向的地址中 MOV AL,0AH MOV BX+SI+2,AL;AL中值放入BX中,SI+1所指向的地址中 MOV AL,$ MOV BX+SI+3,AL ;AL中值放入BX中,SI+2所指向的地址中 MOV DX,BX MOV AH,9 INT 21H ;显示BX中值 LEA DX,DISPP2 MOV AH,9 INT 21H ;调用int 21的09功能,输出字符串 JMP L5L4: MOV AH,4CH;结束处理 INT 21H;调用int 21的4cH功能,终止当前程序并返回调用程序

9、CODES ENDS END START4、结果5、心得适当的运用,任务三:1、目的:响铃设计 要求:为掌握字符和数据的显示方法。编写程序,从键盘接受输入字符,如是数字N,则响铃N次;如不是数字,则不响。2、流程图3、源程序:DATAS SEGMENTDATA1 DB input number1-9,quit with ctrl-c,0DH,0AH,$DISPP1 DB 0DH,0AH,$ DISPP2 DB wrong number,please input again or quit with ctrl-c,0DH,0AH,$ ;此处输入数据段代码 DATAS ENDSSTACKS SEG

10、MENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATASMOV DS,AXL1: LEA DX,DATA1 MOV AH,9 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV AH,1 INT 21H CMP AL,$ JZ L4 CMP AL,31H JL L5 CMP AL,39H JG L5 jmp L6L5: LEA DX,DISPP2 MOV AH,9 INT 21H jmp l1L6 : MOV BL,AL SUB BL,3

11、0H L2: MOV DL,7 MOV AH,2 INT 21H MOV CX,0FFFH L3: MOV DX,CX MOV CX,0FFFFH LP: LOOP LP MOV CX,DX LOOP L3 DEC BL JNZ L2 JMP L1 ;此处输入代码段代码L4: MOV AH,4CH INT 21HCODES ENDS END START4、结果:5、心得前面要首先定义,输入正确的和输入错误的不同转向语句,并且要给响铃延长时间,用来确定响铃的次数。任务四:1、目的:将键盘输入的小写字母转换成大写字母的设计要求:为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。编写

12、程序,接收键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。2、流程图NY入口段寄存器和堆栈初始化BX指向字符行缓冲区首址偏移指针SI清0INT 21H的01H号子功能接收键入字符是小写字母?是回车键?是ctrl+c键?小写字母的ASCII码值转化为大写字母的ASCII码值存入字符缓冲区BX+SI单元SI加1指向下一单元显示转换后的字符行缓冲区内容返回DOSYYNN3、源程序:DATAS SEGMENTBUF DB 82 DUP (?) ;此处输入数据段代码 DISPP1 DB Please input string (end with enter, exit with ctrl-

13、c):,0dH,0aH,$DISPP2 DB The converted string is:, 0DH, 0AH,$ DISPP3 DB 0DH,0AH,$ DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS;规定CS,DS的内容START: MOV AX,DATAS MOV DS,AX;DS初始化为DATAS MOV ES,AX MOV BX,OFFSET BUF;把BUF偏移地址放入BX中 LEA DX,DISPP1 MOV AH,9 INT 21H;调用int 21的09功能,输出字符串1KKK:MOV SI,00H;源变址寄存器清零GGG

14、:MOV AH,01H INT 21H;从键盘输入字符,放入AL中 CMP AL,03H JZ PPP;如果是结束字符,则程序结束并返回 CMP AL,0DH JZ BBB;如果输入是回车,则转到BBB程序 CMP AL,61H JB TTT; CMP AL,7AH JA TTT;如果输入不在a到z范围内,则转到TTT程序 SUB AL,20H;AL中值减去20HTTT:MOV BX+SI,AL;AL中值放入BX中,SI所指向的地址中 INC SI;SI自减1 JMP GGG;无条件跳转到GGGBBB: LEA DX,DISPP3 ;取DISSP3首地址送到DI中 MOV AH,9 INT 21H;调用int 21的09功能,输出字符串3 LEA DX,DISPP2 MOV AH,9 INT 21H;调用int 21的09功能,输出字符串 MOV BX+SI,AL;AL中值放入BX中,SI所指向的地址中 MOV AL,0AH;AL置为0AH MOV BX+SI+1,A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论