实验六 汇编语言程序设计

实验六 汇编语言程序设计

一 、 实验目的:

1. 掌握显示提示信息的方法及接收键盘输入信息的方法,完成字符串匹配程序。

2.掌握字符和数据的显示方法,完成字符和数据的显示程序。

3.了解小写字母和大写字母在计算机内的表示方法,并掌握如何进行转换,完成将键盘输入的小写字母转换成大写字母。 二 、 实验内容:

1. 编写程序,实现两个字符串的比较。如相同,则显示“MATCH”,否则,显示”NO MATCH”。

2.先显示信息“INPUT STRING ,THE END FLAG IS $”,再接收字符。如为非数字字符即非“0——9”,则计数器加1,并显示字符。如为数字,则直接显示,但不计数。

3.接收键盘字符(以^-C为结束),并将其中的小写字母转变为大写字母,然后进行显示。 三 、 实验原理

1.DB、 DUP、 EQU等伪指令的功能以及使用格式;INT 21H 的09H子功能的功能、工作情况以及使用格式;INT 21H的0AH子功能的功能、工作情况以及使用格式;串扫描指令SCASB的功能以及使用格式;入栈、出栈指令PUSH 、POP的使用情况 。

2.程序跳转指令JMP的功能及用法;比较指令CMP 、JB、 JBE等指令的功能及用法;循环移位指令ROL的用法及功能;逻辑指令AND的功能及用法。

3.比较指令JA的功能及用法;减法指令SUB的功能及用法。

四、程序框图 入口 段寄存器及堆栈初始化 显示“请输入字符串1“ 使用INT 21H的0AH号子功能,接收键入的字符串 显示“请输入字符串2“ 指针SI指向串1的首字符 SI指向的字符和串2中所有字符作比较 相等 SI加1,指向串1中下一字符 串1中的字符已取完 显示“NO MATCH” 入口 返回DOS 显示“MATCH” 段寄存器初始化 非数字字符计数器BX清0 显示提示信息 INT 21H的01子功能接收键入字符 是“$”字符? 是回车键? 回车换行 非0——9? 计数器BX加1 调用DISP,显示计数结果 返回DOS

入口 段寄存器和堆栈初始化 BX指向字符行缓冲区首址 偏移指针SI清0 INT 21H的01H号子功能接收键入字符 ^-C键? 是回车键? 是小写字母? 小写字母的ASCII码值转化为大写字母的ASCII码值 存入字符缓冲区[BX+SI]单元 SI加1指向下一单元 显示转换后的字符行缓冲区内容 返回

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4