版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5、汇编语言程序设计,基本要求: 程序要结构化,(简明,易读,易调试) 执行速度快。 占用存储空间少,(即存储容量小),汇编程序的基本步骤:,(1)分析问题,描绘出数学模型。 (2)确定算法。 (3)绘制程序框图。 (4)分配存储器及工作单元。 (5)编制程序。 (6)静态检查。 (7)上机调试、试运行。,例:编写一个程序查找一定内存单元中的最大自然数。,分析问题,确定数学模型。 确定算法。 绘制程序框图。 分配存储器及工作单元。 编制程序。 静态检查。 上机调试、试运行。,DATASEGMENT PARA;定义数据段 D1DB 85,77,90,87,69,92,78; DATAENDS ;
2、 数据段结束 STACKSEGMENT PARA STACK;定义堆栈段 DW20 DUP (0); 堆栈段位20个字节 STACKENDS ; 堆栈段结束 CODESEGMENT ;定义代码段 ASSUMECS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX;初始化DS MOVBX,OFFSET D1;设置数据指针,MOVCX,7;设置计数器 DECCX MOVAL,BX;取第一个数 LOP:INCBX CMPAL,BX;与下一个数比较 JAENEXT;下一个数不大转移 MOVAL,BX;大数存入AL NEXT:DECCX JNZLOP;
3、CX0继续 MOVDL,AL;显示最大数(?) MOVAH,2 INT21H CODEENDS;代码段结束 END START ;源程序结束,程序的基本结构,顺序结构 分支结构 循环结构 子程序结构,1、顺序结构,顺序结构程序本身很简单,按程序的编写顺序逐条执行。它依赖于计算机能够顺序执行语句的特点,只要语句安排的顺序是正确的就可以了。,例: 把非压缩的十进制数DATl转化为压缩的十进制数。 完成上述功能的程序段为: MOV AX,DATl;例如AX=0204H MOV CL,4 SAL AH, CL;AH=20,AX=2004H ROL AX, CL;AX=0042H ROL AL, CL
4、MOV BYTE PIR DATl,AL;DAT1中为24H为压缩的十进制数 . . .,2、分支结构,例: 设计一字符比较程序,将键入的字符与存储单元的字符相比较,相同显示YES,不同显示NO,DATA1SEGMENT D1DBPLEASE INPUT A CHARACTER: $ D2DBA DYESDBYES,$ DNODBNO,$ DATA1ENDS STACK1SEGMENTPARASTACK DW20 DUP(0) STACK1ENDS CODESEGMENT ASSUMECS:CODE,DS:DATA1,SS:STACK1,START:MOVAX,DATA1; 数据段寄存器DS初
5、始化 MOVDS,AX LEADX,D1; 取被加数D1数据区的首地址 MOVAH,09H; 功能号为09H,调显示功能 INT21H MOVAH,7;从键盘得到一个字符,不回显 INT21H MOVBL,D2 CMPAL,BL JZYES,LEADX,DNO JMPNO YES:LEADX,DYES NO:MOVAH,09H;显示 INT21H MOVAH,4CH; 功能号为4CH,返回DOS INT21H CODEENDS ENDSTART,3、循环结构,例:求100个数的和。,DATA1SEGMENT SEDW100 DUP(?) YDW? DATA1ENDS STACK1SEGMENT
6、PARASTACK DW20 DUP(0) STACK1ENDS CODESEGMENT ASSUMECS:CODE,DS:DATA1,SS:STACK1 START:MOVAX,DATA1; 数据段寄存器DS初始化 MOVDS,AX,MOVAX,0 ADDAX,SE ADDAX,SE+2 ADDAX,SE+4 ADDAX,SE+198 MOVY,AX CODEENDS ENDSTART,加100次,改为循环设计: XORAX,AX MOVBX,OFFSET SE MOVCX,100 LOP:ADDAX,BX;循环体 INCBX INCBX DECCX JNZLOP;CX 0,循环 MOVY,
7、AX CODEENDS ENDSTART,例:统计一个数据块中正数、负数和0的个数。,DATASEGMENT MN DB 76H,0A8H,34H,0BBH,90H,00H NN DB 3 DUP(0) DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DATA START:MOVAX,DATA MOVDS,AX LEADI,MN MOVBX,0 MOVAH,0 MOVCL,NN-MN;数据块长度送CL,MOVCH,0 LINE1:MOVAL,DI ANDAL,AL;送标志判断 JZLINE3;0,转到LINE3 JNSLINE2;正,转到LINE3 INCAH
8、;负 JMPLINE4 LINE2:INCBH JMPLINE4 LINE3:INCBL LINE4:INCDI,LOOPLINE1 MOVDI,OFFSET NN MOVDI,AH;存负数的个数 INCDI MOVDI,BH ;存正数的个数 INCDI MOVDI,BL ;存0的个数 MOVAH,4CH;返回DOS INT21H CODEENDS ENDSTART,子程序设计,1、主子程序之间的信息交换(参数传递) 2、现场保护,重复出现的程序段,例: 16进制变换为ASCII DATASEGMENT ;定义数据段 D1DB 37H,48H,0A7H,97H D2DB 8 DUP(38H),
9、$ DATAENDS ; 数据段结束 STACKSEGMENT PARA STACK;定义堆栈段 DW20 DUP (0); 堆栈段位20个字节 STACKENDS ; 堆栈段结束,CODESEGMENT ;定义代码段 ASSUMECS:CODE,DS:DATA,SS:STACK START: MOVAX,DATA MOVDS,AX;初始化DS LEABX,D1;设置数据指针 LEASI,D2 MOVCX,D2-D1;设置计数器 AGAIN:MOVAL,BX;取第一字节数 MOVDL,AL PUSHCX MOVCL,4,SHRAL,CL;高位移到低位 POPCX CALLCHANGE MOVA
10、L,DL ANDAL,0FH;屏蔽高位 CALLCHANGE INCBX LOOPAGAIN;CX不等于0循环 LEADX,D2 MOV AH,09H INT 21H MOVAH,4CH; 功能号为4CH,返回DOS INT21H,;转换子程序CHANGE 入口:AL低半子节为要转换的16进制数, ;SI为要存放转换后ASCII的间址寄存器。 CHANGEPROC CMPAL,10 JLJIA0 ADDAL,A-0-10;A-F值 JIA0:ADDAL,0;0-9值 MOVSI,AL;存ASCII INC SI RET CHANGEENDP CODEENDS;代码段结束 ENDSTART ;源程序结束,汇编语言编程练习:,1、在给定的数据区域中,找出最大数。 2、在给定的数据区域中,找出最大数 和最小数。,VARDW
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年内容电商 知识付费变现项目公司成立分析报告
- 2026年小腿按摩仪项目可行性研究报告
- 2026年交易多边化项目公司成立分析报告
- 2026年生物制造细胞工厂项目公司成立分析报告
- 2026年智能超声波香氛机项目可行性研究报告
- 2026年健康疗愈综合体项目公司成立分析报告
- 2026年工业数字孪生项目可行性研究报告
- 2026年天然气掺氢项目可行性研究报告
- 2026年金融分析师投资策略分析模拟考试题目
- 2026年世界地理信息试题与答案集
- 2026贵州贵阳市安航机械制造有限公司招聘8人考试重点试题及答案解析
- 2026年空天科技卫星互联网应用报告及未来五至十年全球通信创新报告
- (正式版)DB51∕T 3342-2025 《炉灶用合成液体燃料经营管理规范》
- 2025年上海市普通高中学业水平等级性考试地理试卷(含答案)
- 腔镜器械的清洗与管理
- 江南大学《食品科学与工程》考研真题及答案解析
- 眼科:青光眼患者药物治疗指南
- 2025年计算机等级考试(NCRE)一级人工智能与大模型基础样题及参考答案
- 2025年汉语桥的考试题目及答案
- 医护服务意识培训
- 芬兰烟熏桑拿体验创新创业项目商业计划书
评论
0/150
提交评论