2019汇编实验报告(适合初学者)

2019汇编实验报告(适合初学者)

ID:47340845

大小:17.45 KB

页数:7页

时间:2019-08-13

2019汇编实验报告(适合初学者)_第1页
2019汇编实验报告(适合初学者)_第2页
2019汇编实验报告(适合初学者)_第3页
2019汇编实验报告(适合初学者)_第4页
2019汇编实验报告(适合初学者)_第5页
资源描述:

《2019汇编实验报告(适合初学者)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、汇编实验报告(适合初学者)  汇编语言程序设计  一、实验目的与要求  1.熟悉汇编语言运行、调试环境及方法。2.掌握简单汇编语言程序的设计方法。  3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。  二、实验内容  根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。  1.若X、Y、R、W是存放8位带符号数字节单元的地址,Z是16位字单元的地址。试编写汇编程序,完成Z=3否是输出-1否X0O++(0数加1)是F++(负数个数加1)Z++(正数个数加1)i=i+1否循环计数值=0?是结束②.源

2、程序清单。  DATASEGMENT  XDB5,6,7,8,0,-1,-2,-3,-4;数据定义  YDB9;存放循环计数值  ZDB0;存放正数个数  ODB0;存放0个数  FDB0;存放负数个数  MESSAGE1DB'positivenumber:$';输出正数个数提示符  MESSAGE2DB'negativenumber:$';输出负数个数提示符  MESSAGE3DB'zeronumber:$';输出数为0个数提示符DATAENDSCODESEGMENT  ASSUMECS:CODE,DS:DATA  6  START:MOVAX,D

3、ATA  MOVDS,AX;段寄存器定义  LEADI,X;将X数组放到DI寄存器  MOVCL,Y;初始化循环计数值  NEXT:  MOVAL,[DI];开始取数组里的值  CMPAL,0;与0比较  JE  ZERO;等于0则转ZERO  JG  ZHENG;大于0则转ZHENG  JMPFUSHU;小于0则转FUSHU  ZERO:  INC[O];0的个数加一  ADDDI,1;到数组下一个数  JMPLOOP_HERE  ZHENG:  INC[Z];正数个数加一  ADDDI,1;到数组下一个数  JMPLOOP_HERE  FUSHU

4、:  INC[F];负数个数加一  ADDDI,1;到数组下一个数  LOOP_HERE:  LOOPNEXT;循环计数自动减一,循环计数不为0继续循环    MOVAH,9;输出正数个数  MOVDX,OFFSETMESSAGE1  INT21H  MOVDL,Z  ADDDL,30H  MOVAH,2  INT21H  MOVDL,0AH  MOVAH,2  INT21H    MOVAH,9;输出0个个数  MOVDX,OFFSETMESSAGE3  INT21H  MOVDL,O  ADDDL,30H  MOVAH,2  INT21H  MO

5、VDL,0AH  7  MOVAH,2  INT21H    MOVAH,9;输出负数个数  MOVDX,OFFSETMESSAGE2  INT21H  MOVDL,F  ADDDL,30H  MOVAH,2  INT21H  MOVDL,0AH  MOVAH,2  INT21H  MOVAH,4CH;退出  INT21H  CODEENDS  ENDSTART③.程序运行结果。  ④.调试过程中遇到的问题和解决的方法。  对loop指令的跳转不熟悉,以至程序出错;一开始使用BX来缓存数据,但数组不跳转,使用DI指针寄存器来解决。  5.编程求无符号

6、数字节序列中最大值和最小值。①.程序算法流程图。  8  开始初始化数循环计数值i=0BL=X[i](最大值)DL=X[i](最小值)是X[i]>BL否BL=X[i]X[i]=’A’是是X[i]>’Z’否否X[i]>=’a’是否num++是i++X[i]>’z’循环计数值=0?否是输出最大值,最小值结束  11  ②.源程序清单。  DATASEGMENT  SDB'Y1j3q4';定义字符串  COUNTEQU$-S;获得字符串的字符数  NUMDB0;用于记录字母的个数  MESSAGEDB'englishalphabetnumber:$';输出

7、英文字母个数提示符  DATAENDS  CODESEGMENT  ASSUMECS:CODE,DS:DATASTART:  MOVAX,DATA  MOVDS,AX;段寄存器定义  MOVDI,OFFSETS;获得s首地址  MOVCX,COUNT;初始化循环计数值  BEGIN:  MOVAL,[DI];开始取字符  CMPAL,'A'  JGE  NEXT;比A大于等于继续  JMPRE;比A小,取下一个字符NEXT:  CMPAL,'Z';和Z比较  JG  NEXT2;大于Z,得跟a比较  INCNUM;在到Z之间为大写字母,num加1  

8、JMPRE;取下一个字符NEXT2:  CMPAL,'a';跟a比较  JGE  NEXT4;大于等于a,得

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。