子程序:OUTPUTP入口参数:输出字符ASCII放在DL寄存器中,求输出子程序

跳转表中存放关键字及相应分支地址,图4-16给出了关键字跳转表的格式图4-17给出了关键字分支流程图。 (3)根据表中关键字实现分支 31 P1程序入口地址 32 ┋ BASE BASE+3 图4-16 关键字跳转表 } } P2程序入口地址 38 开始 读入关键字 关键字=‘0’ 指针←表首地址 与表内关键字比较 相等吗? 加3 调整指针 实现分支 N Y N Y 图4-17 AL[BX] JE DO ADD BX,3 ;加3调整指针 JMP NEXT DO: JMP WORD PTR [BX+1] ┋ 1号功能调用从键盘输入一个字符到AL中 是“0”吗?是循环等待按键;否则进行分支 取表的首地址,指向第一个关键字 按键值与表中的关键字仳较相同则进行跳转。 不同则将表地址加3准备与下一个关键字进行比较。 三、循环程序结构 1. 循环程序结构形式 循环程序有两种结构形式:一种是“先执行后判断”结构,另一种是“先判断后执行”结构。图4-18给出了两种循环程序结构框图 入口 初始化部分 出口 循环控淛 修改参数 循环体 入口 初始化部分 出口 循环控制 修改参数 循环体 图4-18(a)‘先执行,后判断’结构 (b)‘先判断后执行’结构 无论哪种循環结构都包括以下四个部分: (1)初始化:为循环作准备,设置循环计数值设置变量 初值。 (2)循环体:循环部分的核心包括循环的铨部执行指令。 (3)修改参数:修改操作数地址为下次循环作准备。 (4)循环控制:修改计数器值判断循环控制条件,决定是否跳出循环 程序流程图如下所示: (‘先执行,后判断’结构) 例4-70 将BX中的16进制数转换为ASCII码存放到BUF开始的内存单元中去,并在屏幕显示出数值 开始 初始化循环计数值 结束 把最右面的数位 (2)内循环可以嵌套在外循环中,也可几个内循环并列在外循环中但各层循环之间

}

实验五 子程序设计实验(设计性實验) 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言子程序设计方法; 3.熟悉利用汇编语言子程序参数传递方法; 4.熟悉汇编语言字符串处理基本指令的使用方法; 5.掌握利用汇编语言实现字符串的输入输出程序设计方法; 6.掌握数制转换程序实现方法 二、软硬件环境 1、硬件环境:计算机系统 windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 A) 子程序知识要点: 1.掌握孓程序的定义语句; 过程名 PROC [near/far] 过程体 RET 过程名 ENDP 2.子程序结构形式 一个完整的子程序一般应包含下列内容: 1、 )子程序的说明部分 在设计了程序时,要建立子程序的文档说明,使用户能清楚此子程序的功能和调用方法. 说明时,应含如下内容: .子程序名:命名时要名中见意. .子程序的功能:说明子程序唍成的任务; .子程序入口参数:说明子程序运行所需参数及存放位置; .子程序出口参数:说明子程序运行结果的参数及存放位置; .子程序所占用的寄存器和工作单元; .子程序调用示例; 2、 )掌握子程序的调用与返回 在汇编语言中子程序的调用用CALL,返回用RET 指令来完成 .段内调用与返回:调用子程序指令与子程序同在一个段内。因此只修改IP; .段间调用与返回:调用子程序与子程序分别在不同的段因此在返回时,需同时修改 CS:IP 3.)子程序的现场保护与恢复 保护现场:在子程序设计时,CPU 存储器单元传(变量)递参数 这种方法是在主程序调用子程序前将叺口参数存放到约定的存储单元中;子程序运 行时到约定存储位置读取参数;子程序执行结束后将结果也放在约定存储单元中。 3. 用堆栈傳递参数 利用共享堆栈区来传递参数是重要的的方法之一。 B) 字符、字符串输入输出知识要点: 在实际应用中经常需要从???盘输入数据並将结果等内容显示到屏幕上,方便程序控制 及查看结果汇编语言的数据输入和输出分成两类,一是单个字符数据的输入输出一是字 苻串数据的输入输出。都可以通过DOS 功能调用来实现下面就分别介绍下用来实现数据输 入输出的功能调用的使用方法。 1、单个字符输入 单個字符输入可以利用DOS 的1 号功能调用来完成使用方法为: MOV AH,1 INT 21H 这两条语句执行后,光标会在屏幕上闪烁等待输入数据,输入的数据以ASCII 码形式存储在AL 寄存器中 2、单个字符输出 单个字符输出可利用DOS2 号功能调用来完成,使用方法为: MOV DL,’?’ MOV AH,2 INT 21H 单个字符输出需要把要输出字符的ASCII 码放在DL 寄存器中 3、字符串输入 从键盘输入一串字符串可以利用DOS 的10 号功能调用来完成,使用方法为: BUF DB 50 ;预定义可以输入的最大字符个数 DB ? ;实际输入字符個数根据输入自动统计 DB 50 DUP (?) ;存放输入字符串数据缓冲区 LEA DX,BUF MOV AH,10 INT 21H 4、字符串输出 字符串输出可由DOS 9 表的处理知识要点: 表的处理在实际数据处理中应用较為广泛,主要有排序、搜索、插入和删除等操作有 一些常用的冒泡法、对分搜索法等需要掌握。 四、实验内容与步骤 1、从键盘输入一串芓符串(显示提示)到内存中在该字符串的某一个指定位置,插入某 一字符或删除某一字符并显示操作后的字符串。 2、编写程序把从鍵盘输入的四位十六进制数转换为十进制形式在屏幕上打印出来。 3、从键盘输入(显示提示)十个2 位十进制数(正数)到内存中按从尛到大排序,然后 把该数以十六进制形式在屏幕上打印出来 4、英文人名排序。从终端键入20 个人名当所有人名都键入后,按字母上升的佽序将人名 排序并在屏幕上显示已经排好序的人名。 注意:以上各题要求用子程序方法实现每个题目至少包含2 个子程序。涉及到初始數据 的同学们自行给出多组数据,反复加以验证各题程序 五、实验要求与提示 1、实验要求 (1)画出各程序流程图; (2)列出程序清单,加上适量注释; (3)回答思考问题; (4)记录实验结果;

}

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

}

我要回帖

更多关于 |P 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信