汇编语言第4章程序设计.ppt

  1. 1、本文档共100页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言第4章程序设计课件

* * * * * * * * * * * * * * * * * 同一程序中,一个符号名用EQU或=只能定义一次 * * * * * * * * * * * * * * * * * * * * * 0DH是换行 * * 循环结构程序 一、 循环程序的结构 直到型循环:先执行循环体,再判条件是否满足。若不满足则执行循环体,否则退出循环 当型循环:当条件满足时,执行循环体,否则退出循环 循环结构是指重复执行某公共程序段若干次,直到满足条件,才结束循环操作。有单重循环和多重循环。构成: 1.初始化部分;2.循环体部分;3.循环控制部分 循环结构程序 二、单重循环程序设计 常用循环控制方法有: (1)计数器控制:循环次数已知的情况; (2)条件控制:循环次数未知,循环过程中某个特定条件是否满足; (3)开关变量控制:根据开关变量的值确定进入下一个循环体,有循环条件来控制整个循环的执行。 (4)逻辑尺控制:以某一存储单元中某位是1或0去执行不同的循环体。 循环结构程序 【例】 在以BUF为首址的存贮区存放一批字节数,试统计其中正数的个数。 程序流程图 (BX)=0 BX指向首址BUF; CX为计数器; 正数个数送AX,初值为0。 [BX]=0 CX=0? AX+1→AX BX+1→BX CX-1→CX AX→NUM DATA SEGMENT BUF DB -10,16,78,9,-36,87,44,79,36,54,97,75,3 N EQU $ - BUF NUM DB ? ;留一个单元,存放正数个数 DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV AX,0000H LEA BX,BUF MOV CX,N NEXT: CMP [BX],0 ;与0进行比较 JLE A1 ;X≤0转A1 INC AX ;X>0,AX加1 A1: INC BX LOOP NEXT MOV NUM,AX ;正数个数送NUM单元 MOV AH,4CH INT 21H CODE ENDS END START 【例】 在以BUF为首址的字存储区中存放有N个有符号数,现需将它们按大到小的顺序排列在BUF存储区中,试编写其程序。 一组数 10 8 16 90 32 第一遍 10 16 90 32 8 第二遍 16 90 32 10 8 第三遍 90 32 16 10 8 本章注意点 完整的汇编语言源程序结构 定义逻辑段,说明段的含义,初始化段寄存器 伪指令 数据定义方式 字符及字符串的输入和显示输出 字符输入缓冲区的定义,输出字符串的定义 源程序的编写 几种结构(顺序、循环、分枝等) * * * * * * * * * * * 指令性语句(伪指令语句):它是一种不产生目标代码的语句,它仅仅在汇编过程中告诉汇编程序应如何汇编。例如,告诉汇编程序已写出的汇编语言源程序有几个段,段的名字是什么;定义变量,定义过程,给变量分配存储单元,给数字或表达式命名等。显然,伪指令语句是汇编程序在汇编时使用的。 * 并非每条指令语句必须有标号,但如果一条指令前面有一标号,则程序中其它地方就可以引用这个标号。 * * * * 变量定义中的表达式确定了变量的初值 * * * * * * * * * * 二、字符串输入 注意问题: 调用格式 字符输入缓冲区的定义 1. 调用格式 功能号OAH 字符串在内存中的存放地址 INT 21H AH DS:DX 2.键盘输入字符串(0A号调用) 格式:MOV AH,0AH LEA DX, 字符串缓冲区首地址   INT 21H 功能:等待键盘输入,输入字符串的ASCII码送内存单元。 (预留的N1个字节的存储单元) 0DH N2 N1 N1: 缓冲区长度(最大键入字符数), N2: 实际键入的字符数(不包括回车符) 例:设在数据段定义键盘缓冲区如下: STR1 DB 10,?,10 DUP(?) ;程序段: LEA DX,STR1 MOV AH,0AH INT 21H ;最多从键盘接收10个按键 缓冲区格式: 注意:先定义一个缓冲区;最后输入回车键以示字符串输入结束:未填满,剩余填零;超过缓冲区容量,自动丢失并响铃。 输入字符串程序段 DAT1 DB 20,?,20 DUP(?)

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档