汇编语言程序设计4.ppt_第1页
汇编语言程序设计4.ppt_第2页
汇编语言程序设计4.ppt_第3页
汇编语言程序设计4.ppt_第4页
汇编语言程序设计4.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

微型计算机原理及应用 张丹 制作 循环体 开始 初始化 工作部分 修改部分 控制部分 结束 循环体至少执行一次 开始 初始化 控制部分 工作部分 修改部分 结束 循环体可能一次也不执行 循环结构程序的组成 循环程序的控制方法 计数法 条件控制法 开关控制法 逻辑尺控制法 方法 适合于循环次数已知 适合于循环次数未知 4.5 循环结构程序设计 4.5.4 单重循环程序举例-条件控制法 如果一个循环程序的循环体内是由顺 序结构或分支结构组成,那么这个程序称 为单重循环程序。 如果一个循环程序的循环体内还包含有 一个或多个循环结构的程序,那么这个程序 称双重或多重循环结构程序。 循环程序的分类 4.5 循环结构程序设计 4.5.4 单重循环程序举例-条件控制法 4.5.5 多重循环程序设计 条件控制法 【例】编制程序完成1+2+3+N的累加和,直 至累加和超过1000为止,统计被累加的自然数 的个数CN送入字单元,累加和送入SUM字单元 。 条件:即为循环结束条件,不同的问题,有不同的条 件,须对问题仔细分析得到。 DSEGSEGMENT CNDW? SUM DW? DSEGENDS CSEGSEGMENT ASSUME CS: CSEG,DS: DSEG ATART:MOVAX,DSEG MOVDS, AX MOVAX ,0 MOVBX, 0 AGAIN:INCBX ADDAX,BX CMPAX,1000 JBE AGAIN MOVSUM,AX MOVCN, BX MOVAH, 4CH INT21H CSEG ENDS END ATART DSEGSEGMENT CNDW? SUM DW? DSEGENDS CSEGSEGMENT ASSUME CS: CSEG,DS: DSEG ATART:MOVAX,DSEG MOVDS, AX MOVAX ,0 MOVBX, 0 AGAIN: CMPAX,1000 JA EXIT INCBX ADDAX,BX JMPAGAIN EXIT:MOVSUM,AX MOVCN, BX : 【例】已知附加段从2100H21FFH单元存放 若干个字节数据,编程统计其中正偶数的个 数,并放入COUNT字单元中。 条件控制法 ESEGSEGMENT ORG2100H BUFDB-1, -2, 12, COUNT DB? ESEGENDS CSEGSEGMENT ASSUMECS: CSEG,ES: ESEG ATART:MOVAX,ESEG MOVES, AX MOVCL ,0 MOVBX, OFFSET BUF AGAIN: CMPBX, 21FFH JAEXIT MOVAL, ES: BX ANDAL,AL JSNEXT TESTAL, 01H JNZNEXT INC CL NEXT:INC BX JMP AGAIN EXIT:MOVES:COUNT,CL : 【例】设计一个程序,统计在内存W单元 保存的无符号字变量中有多少个二进制 “1”,统计的结果送入内存N单元保存。 条件控制法 DSEGSEGMENT WDW1234H N DB? DSEGENDS CSEGSEGMENT ASSUME CS: CSEG,DS: DSEG ATART:MOVAX,DSEG MOVDS, AX MOVAX ,W MOVCL, 0 AGAIN:ANDAX, AX JZ EXIT SHRAX,1 JNC NEXT INCCL NEXT:JMPAGAIN MOV N, CL MOVAH, 4CH INT21H CSEG ENDS END ATART 问题:在程序设计中,经常涉及到输入输出的程序设计 。 1. 要从键盘上接收数据或字符串。 2. 程序运行后,总要将运行的结果显示在屏幕上。 解决方案: 1. 利用DOS提供给用户的系统功能调用是INT 21H, 它提供近百个功能供用户选择使用,是一个功能齐全 、使用方便的中断服务程序集合。 2.利用ROM-BIOS,它也以中断服务程序的形式,向程 序员提供系统的基本输入输出程序。 系统功能调用 系统功能的调用格式(包括ROM-BIOS调用 )都是一样的,一般按如下四步进行: 1. 在AH寄存器中设置系统功能调用号; 2. 在指定寄存器中设置入口参数; 3. 用INT 21H(或ROM-BIOS的中断向量号 )指令执行功能调用; 4. 根据出口参数分析功能调用执行情况。 调用方法:MOVAH,4CH I N T21H 功能:程序结束,返回 DOS 状态。 入口条件: AL =返回码 出口条件:无 一. 程序结束退出 调用方法:MOVAH,01H I N T21H 功能:从键盘上接收一个字符,并在屏幕上显示出来 。 入口条件:无 出口条件:键入字符的ASCII 码在 AL 中 。 二 . 键盘输入 调用方法:MOVAH,02H MOV DL,字符的 ASCII 码 I N T21H 功能:在屏幕上光标处显示一个字符。 入口条件:要显示的字符的 ASCII 码在 DL 中。 出口条件:字符显示在屏幕上。 三. 在显示器上输出一个字符 【例】要求从键盘输入一个小写英文字母,将其 转换成对应大写英文字母在屏幕上显示。 CSEGSEGMENT ASSUME CS: CSEG ATART:MOVAH,1 INT 21H SUBAL, 20H MOVDL,AL MOVAH,2 INT 21H MOVAH, 4CH INT21H CSEG ENDS END ATART 【例】编程实现将字变量X的值以十进制 形式在屏幕上显示。 DATA SEGMENT X DW 1234 DATA ENDS CODESEGMENT ASSUME CS: CODE,DS: DATA START:MOV AX,DATA MOV DS,AX MOV AX,-1 PUSH AX MOV AX,X ;初始化 AA :AND AX,AX;控制部分 JZ BB MOV DX,0;工作及修改部分 MOV BX,10 DIV BX PUSH DX JMP AA BB: POP DX;控制部分 CMP DX, -1 JZ CC OR DL, 30H;工作部分 MOV AH, 2 INT 21H JMP BB CC:MOV AH, 4CH 如果一个循环程序的循环体内还包含有一个 或多个循环结构的程序,那么这个程序称为双重 或多重循环结构程序。 例软件延时程序 SOFTDLY:MOVBL,10 DELAY:MOVCX,2801 WAIT0: LOOPWAIT0 DECBL JNZDELAY 外循环 内循环 4.5.5 多重循环程序设计 开始 外循环初始化部分 内循环初始化部分 内循环工作部分 内循环修改部分 内循环 控制部分 外循环修改部分 外循环 控制部分 结束 外循环工作部分 CODESEGMENT ASSUMECS:CODE START:MOVCX,1 MOVBL,2 AGAIN:MOVAL,BL INCBL MULBL ADDCX,AX CMPAX,2AH JBAGAIN MOVAH,

温馨提示

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

评论

0/150

提交评论