中职计算机原理(主编瞿正刚等_北理工版)课件模块三_指令系统_4_第1页
中职计算机原理(主编瞿正刚等_北理工版)课件模块三_指令系统_4_第2页
中职计算机原理(主编瞿正刚等_北理工版)课件模块三_指令系统_4_第3页
中职计算机原理(主编瞿正刚等_北理工版)课件模块三_指令系统_4_第4页
中职计算机原理(主编瞿正刚等_北理工版)课件模块三_指令系统_4_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

任务4 汇编语言简述,3.4.11介支程序设计 程序设计中不仅需要顺序程序,而且经常会遇到比较和判断,根据比较结果以确定执行不同的程序,即分支程序。 1.分支程序的结构 分支程序的结构一般分为二分支和多分支,其中二分支结构如图3-23所示。多分支是根据多次判断而转入其中的某一支,通常是利用多个二分支来实现,如图3-24所示。,下一页,返回,上一页,图3-23二分支结构,返回,图3-24多分支结构,返回,任务4 汇编语言简述,2.分支程序设计 分支程序主要通过条件转移指令来实现。条件转移指令通常是在比较指令、算术和逻辑运算指令之后使用,根据状态标志寄存器的状态,决定是否转移。 【例3-23】设有一个带符号的16位数存于ALFA单元中,编程判断该数,若大于0,将BETA单元置为OFFH;若等于0,将BETA + 1单元置为OFFH;若小于0,将BETA + 2单元置为OFFH。 解:程序如下,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,3.4.12子程序设计 子程序又称为过程,相当于高级语言中的函数,是为解决某一任务而设计的独立程序段。 1.子程序定义 子程序是用过程伪指令PROC/ENDP来定义。当主程序和子程序在同一代码段时,定义为NEAR属性;主程序和子程序在不同代码段时,定义为FAR属性。,下一页,返回,上一页,任务4 汇编语言简述,2.子程序的调用与返回 在主程序中通过指令CALL调用子程序,在子程序中通过指令RET返回主程序。 3.现场保护与恢复 设计程序时,主程序和子程序分别独立设计,它们所使用的寄存器可能会发生冲突。如果主程序在调用子程序之前所使用的某些寄存器中的内容在子程序返回后还要使用,而这些寄存器子程序也要使用,则在进入子程序后应先将这些寄存器中原来的内容保护起来,而在返回主程序之前予以恢复。通常,可通过堆栈的方法来解决。举例如下。,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,4.主程序和子程序之间的参数传递 主程序调用子程序时,有时需要向子程序提供所需要的数据,而子程序执行完返回主程序时又要将执行的结果传送给主程序,即参数传递。通常,参数传递的方法有3种,即通过寄存器传递、用堆栈传递和存储器单元传递。传递的可以是参数本身,也可以是参数的地址。 5.子程序嵌套与递归调用 在程序调用过程中,子程序也可以调用其他的子程序,这一过程称为子程序嵌套;子程序也可以调用自身,称为子程序的递归调用。 6.子程序设计举例,下一页,返回,上一页,任务4 汇编语言简述,【例3-24】设NUM开始的单元中存放着10个字数组,利用子程序求出该数组中最大值与最小值,分别存入MAX和MIN单元中。 解:说明文件及程序如下。 子程序名:MAX-MIN。 子程序功能:求数组中的最大值与最小值。 入口参数:肛存放数组首地址,CX存放数组元素个数。 出口参数:最大数存入MAX单元,最小数存入MIN单元。 程序设计如下。 DATA SEGMENT,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,例3-25采用子程序调用的方式,求缓冲区BUF中正数的平方。 解:说明文件及程序如下。 子程序名:SQUARE。 子程序功能:求一个正数的平方。 入口参数:在变量BUF表示的存储器单元中。 出口参数:在变量RESULT表示的存储器单元中。 程序如下。,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,3.4.13 DOS调用程序设计 DOS ( disk operating system)是PC上重要的操作系统。DOS功能调用程序人口地址已由系统置入中断向量表中,编写汇编语言程序可用INT中断指令直接调用DOS功能。 例3 - 26编程实现用DOS功能调用完成屏幕光标的回车和换行处理功能。 分析:本题采用子程序调用DOS功能,首先在AH寄存器中设置系统功能调用号;其次在指定寄存器中设置入口参数;最后采用中断调用指令来实现功能调用。其源程序如下。,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,【例3-27】从键盘输入10个字符,要求以输入相反的顺序将这10个字符输出到屏幕上。分析:本题采用堆栈处理,用INT 21 H指令中的01H功能实现键盘输入10个字符并依次压入堆栈,再用02 H功能实现屏幕输出,将10个数据按照“后进先出”的规则从堆栈区域依次输出到屏幕上。其源程序如下。,下一页,返回,上一页,任务4 汇编语言简述,下一页,返回,上一页,任务4 汇编语言简述,【例3 -28】在屏幕上给出“输入一个字符串”的

温馨提示

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

评论

0/150

提交评论