



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三 子程序和宏的使用一、实验目的1练习使用子程序及宏。2练习使用功能调用(INT 21H)中关于程序终止、字符输入及字符输出部分。二、实验准备复习教材中有关章节,编写实验内容的汇编语言源程序并加必要注释。确定数据在内存中的偏移地址可用ORG伪命令。三、实验内容实验内容分为三部分,可以先调试第一部分,然后逐步添加其他功能。多次重复使用的功能块,单独做成子程序或宏,然后在程序中调用。1 从键盘键入10个一位或两位的十进制数,用压缩BCD码的形式存入数据段1000H起的单元中,且每个数在屏幕上显示成一行,共10行。键入数字用单个字符的输入调用。输入时应判断字符类型是否数字09,若不在此范围则不予接收且提示输入错;若在此范围则将ASCII码转换成数值,且每两位十进制数压缩成一个字节存入数据区。若仅输入一个数字就敲回车键,表明这是一个1位的十进制数,其数值还占1个字节,十位数部分为零。2 编程从上面十个数中找出最大值显示在屏幕上。进入DEBUG,修改十个数的数值,检验在各种情况下,程序都能找到最大值。3 (选作)将十个数按从大到小的顺序排列在数据区中。编写总源程序如下:NAME MACRODATASEGMENTMESSDBPlease Input 10 Decimal Number:DB0DH,0AH,$ERROR DB 0DH,0AH,ERROR! Input It Again:,0DH,0AH,$MAXIMUM DB The Max: ,0DH,0AH,$LISTDB0DH,0AH,Sorted List:,0DH,0AH,$ ; 各种提示信息LINEDB0DH,0AH,$ORG1000HNUBLISTDB10DUP(?); 存放输入的数字DATAENDSSTACKSEGMENTSTACKDB100DUP(?)STACKENDSCODESEGMENTNEWLINEMACRO; 实现换行功能PUSHAXPUSHDXLEADX,LINEMOVAH,09INT 21HPOPDXPOPAXENDMPRINTMACRO; 输出寄存器DL中以压;缩BCD码形式表示的数字PUSHBXMOVBL,DLPUSHCXMOVCL,04SHRDL,CLPOPCXADDDL,30HMOVAH,02HINT21HMOVDL,BLANDDL,15ADDDL,30HINT21HNEWLINEPOPBXENDMWRITEMACRO; 从键盘读入一个不大;于99的十进制数,存入BL PUSH AX PUSH CXMOVCL,04 MOV BL,0MOVBH,1GO:CMPBH,3JEEXITMOVAH,01INT21HINCBH CMPAL,0DHJEEXITCMPAL,3AHJAEWRONGCMPAL,2FHJBEWRONGSUBAL,30HSHLBL,CLADDBL,ALJMPGOWRONG: MOVBL,00MOVBH,01; initializeMOVAH,09HLEADX,ERRORINT21HJMPGOEXIT:NEWLINEPOPCXPOPAXENDMMAINPROCFAR ASSUME CS:CODE,DS:DATA,SS:STACK; 从这里开始执行,分别提示输入十个数字,输出;最大值,将数字排序输出BEGIN: PUSH DSMOVAX,0 PUS AXMOVAX,DATAMOVDS,AXMOVAH,09HLEADX,MESSINT21HCALLINPUT MOV AH,09 INT 21H MOV DI,1000H MOV CX,10SM: MOV DL,DI PRINT INCDI LOOP SMCALLFINDMAX RETMAINENDPINPUTPROCNEAR; 调用此子程序;用于输入数字,CX循环控制输入的个数MOVCX,10MOVDI,1000HINPUT_P:WRITEMOVDI,BLINCDILOOPINPUT_PRETINPUTENDPFINDMAXPROCNEAR; 寻找偏移地址;DISI中的最大值并将其输出MOVDI,1000HCALLMAXMOVSI,AXLEADX,MAXIMUMMOVAH,09INT21HMOVDL,SIPRINTRETFINDMAXENDPMAXPROCNEAR; 用于找出内存偏移;地址DISI中的最大值PUSHCXMOVAX,DIMOVSI,1009HMOVCX,SISUBCX,DIMOVBL,DILOOPER:CMPBL,SIJAENEXTMOVBL,SIMOVAX,SINEXT:DECSILOOPLOOPERPOPCXRETMAXENDPSORTPROCNEAR; 实现了制定内存;区段数字的排序功能MOVCX,09MOVDI,1000HNEXTM:CALLMAXMOVSI,AXMOVBL,SIMOVDL,DIMOVSI,DLMOVDI,BLINCDILOOPNEXTMLEADX,LISTMOVAH,09INT21HMOVDI,1000HMOVCX,10SN:MOVDL,DIPRINTINCDILOOPSNRETCODEENDSENDBEGINPlease Input 10 Decimal Number:56685689532125569*Not Decimal Number! Please Input It Again:52566856895321255652The Maximum of All is95Sorted List:95686856565232120505Program terminated normally-d 0b72:10000B72:1000 95 68 68 56 56 52 32 12-05 05 00 00 00 00 00 00 .hhVVR2.0B72:1010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B72:1020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B72:1030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 .0B72:1040 00 00 00 00 00 00 00 00-00 00 00 00 1F 00 01 00 .0B72:1050 1F 00 B0 33 00 00 B0 33-1F 00 1F 00 6E 05 2E 29 .3.3.n.)0B72:1060 6E 05 02 72 00 00 6E 05-73 28 00 FF 01 00 09 00 n.r.n.s(.0B72:1070 39 28 44 28 6E 05 00 00-00 00 00 00 01 00 09 00 9(D(n.运行结果如下:四、总结程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询服务费收取方案范本
- 考研报考咨询宣传方案
- 2025版司法局《调查取证申请书》(空白模板)
- 线上读书活动策划方案公司
- 加油站营销送礼品方案
- 福鼎小型连续墙施工方案
- 围堤清障除杂施工方案
- 建筑转行展览活动方案设计
- 建筑模板废料清除方案设计
- 认知三板斧营销方案
- GB/T 40449-2021犬、猫绝育手术操作技术规范
- GB/T 20468-2006临床实验室定量测定室内质量控制指南
- 档案收集与整理课件
- 安全工作目标及计划
- 消渴痹证(糖尿病周围神经病变)中医临床路径及诊疗方案
- 新浙美版五年级上册美术教学计划
- 《数码摄影入门与进阶》课件:第4章 摄影构图
- 聚氨酯防水涂料检测作业指导书
- 《幼儿园中班第一学期家长会》 PPT课件
- 公司组织架构图模板可编辑
- 电厂确保稳定运行技术措施
评论
0/150
提交评论