预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理实验 实验目的: 应用学过的汇编语言编写简单程序,将汇编语言在编程中实际应用。 掌握汇编语言的编辑、汇编、连接、调试等基本方法。 灵活应用各种语句实现要求的程序功能。 在实验中进一步掌握并熟练应用汇编语言,理解常用指令、伪指令及存储空间分配等 实验内容: 从键盘取得一串字符显示在屏幕上,然后将这串字符以输入的反序再显示一遍,并统计这字符串中‘A’的个数,显示在屏幕上。 附加要求:可以从键盘输入需要统计的字符,并统计这字符串中这个字符的个数,显示在屏幕上。 流程图: 开始 结束 输出相同的字符数量 计数加1 和输入字符比较是否相同 CX=0? 指针指向第一个字符 设置CX循环次数即字符串的字符数 输出提示‘输入字符’ ‘SHURUZIFU’ CX=0? 输出指针指向单元中的字符 指针指向—1指向前一个单元 指针指向字符串最后一个字符 设置循环次数CX为输入的字符个数 输出提示“反转后字符” ‘FANZHUANHOUZIFU’ 输入字符串 输出提示“输入字符串” ‘SHURUZIFUCHUAN’ 输入要查找的字符 否 是 是 否 指向下一个字符 是 否 实验程序: DATASSEGMENT PASSDB20;预留20个字节的空间存放输入的字符 BLK1DB'SHURUZIFUCHUAN:$';在屏幕上要显示的提示语句 BLK2DB'SHURUZIFU:$' BLK3DB'SHULIANGSHI:$' BLK4DB'FANZHUANHOU:$' DATASENDS ;********以上是数据段定义,下面开始代码段************ CODESSEGMENT ASSUMECS:CODES,DS:DATAS START:MOVAX,DATAS MOVDS,AX;实现ASSUME中的承诺 ;**************************************************** MOVAH,09H;字符串输出功能09H LEADX,BLK1 INT21H ;**********显示第一句提示语************************* MOVAH,0AH;字符串输入功能0AH LEADX,PASS INT21H ;********以上完成字符串输入并显示出来*************** MOVAH,2 MOVDL,0DH INT21H MOVDL,0AH INT21H ;*********以上实现回车换行*************************** MOVAH,09H LEADX,BLK4 INT21H ;*******输出BLK4中定义的内容,提示为反转后字符串*************** MOVCL,PASS+1;PASS+1处是实际输入的字符个数 MOVCH,0;CH置0,CX为循环的次数也就是输入的字符个数 MOVDL,PASS+1 MOVDH,0;DX同样是字符个数,用于后面的加法运算 LEASI,PASS+2;PASS+2处为实际输入字符的开始位置; ADDSI,DX;用加法实现了将SI的指针指向了字符串的最后一个字符 S0:DECSI;SI不断减1,指针指向地址不断前移,也就反向了输出刚才输入的字符串 MOVAH,02H;显示输出功能02H MOVDL,[SI];输出指针所指向单元中的内容 INT21H LOOPS0 ;**********以上用循实现了字符串的反转后输出功能*************** MOVAH,2 MOVDL,0DH INT21H MOVDL,0AH INT21H ;***********回车换行******************* MOVAH,09H LEADX,BLK2 INT21H ;**********显示提示语BLK2输入要查找的字符的提示语输出************************ MOVAH,01H;有回显的输入,显示的是输入的要查找字符 INT21H MOVCL,PASS+1 XORCH,CH LEASI,PASS+2 XORDL,DL;和前面相同CX设置了循环次数,SI指向第一个字符 S1:CMPAL,[SI];进行字符比较,是和Al比较,若相同则计数加1,不同则比较下一个 JNZNEXT INCDL;DL记录的是比较过程中相同的字符数 NEXT:INCSI;指向下一个字符 LOOPS1 MOVBL,DL;DL记录的数量给BL后面语句输出之前要用到DL ;*******通过以上循环将所有字符比较一遍得到数量*********************