南昌大学汇编实验报告
南昌大学汇编实验子程序与串处理

实验二串处理与子程序姓名:刘权班级:电III 111班学号:6100411011 日期:11.12 11.19字符处理程序实验一. 实验目的1.熟悉串操作指令的功能与应用;2.掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。
二.实验内容1.字符串统计。
从键盘最多输入80个字符存放在STR开始的存储区中,统计其中含有小写字母的个数,将统计结果以两位十进制数显示在屏幕上。
2.删除重复字符。
从键盘最多输入80个字符存放在STR开始的存储区中,删除其中重复的字符,输出删除处理后的字符串。
三. 实验要求1.认真预习有关串操作的指令极其寻址方式的特点,能够正确使用串操作指令,并准备好数据。
2.依题意分析给出程序设计算法。
四.实验环境PC微机DOS操作系统或Windows 操作系统MASM.EXE,LINK.EXE,或宏汇编集成环境RADASM五.实验步骤1.用1号系统调用从键盘键入一个字符串,然后统计其中小写字母的个数。
程序每次执行,都能得到不同的结果。
程序清单:DA TA SEGMENTMSG1 DB 'Input a string:',0AH,0DH,'$'MSG2 DB 'The number of lowercase letter is:$'STR DB 80 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DA TAMOV DS, AX;输出提示LEA DX,MSG1MOV AH,9INT 21HLEA DI, STRMOV CL, 0 ;CL用来记录输入字符数AGAIN: MOV AH, 1INT 21HCMP AL,0DHJZ DONE ; 输入回车键则转DONEMOV [DI],ALINC DIINC CLJMP AGAINDONE: LEA SI,STRMOV CH,0 ;CX保存输入字符数MOV BL,0 ;BL用来统计小写字符个数CLDCYCLE: LODSBCMP AL,'a'JB NEXTCMP AL,'z'JA NEXTINC BLNEXT: LOOP CYCLE;回车换行MOV AH,2MOV DL,0AHINT 21HMOV DL,0DHINT 21H;输出提示LEA DX,MSG2MOV AH,9INT 21H;以下显示输入小写字母个数的两位十进制数MOV AL,BL ;小写字符个数送ALMOV AH,0 ;AX存放小写字符个数MOV CL,10DIV CL ;十位数在AL中,个位数在AH中MOV BX,AX ;十位数在BL中,个位数在BH中MOV DL,BLMOV AH,2OR DL,30HINT 21H ;输出小写字母个数的十位数字MOV DL,BHOR DL,30HMOV AH,2INT 21H ;输出小写字母个数的个位数字MOV AH,4CHINT 21HCODE ENDSEND START2.要求编写一个在同一个字符串中删除字符,并将其余字符向前递补的程序。
南昌大学汇编语言实验报告

.实验报告实验课程:IBM-PC 汇编语言程序设计学生姓名:刘兴隆学号:7101310013专业班级:电气信息类III101 班2021年12月15日...汇编语言实验指导前言汇编语言是计算机专业的一门重要的专业根基课,主要介绍汇编语言程序设计的根来源理和方法。
汇编语言是一门理论性和实践性较强的课程,协助讲堂教课的实验有助于帮助学生理解汇编语言的根来源理,锻炼学生的着手能力,提升学生的综合应用知识的能力。
本实验指导依照汇编语言程序设计的教课大纲领求编写。
依照顺序渐进、由浅入深的规律,经过实例复习牢固所学知识,借助实例展开汇编语言程序设计。
经过这类既拥有结构性又拥有创建性的学习活动,更便于初学者的理解和掌握,经过上机实验,并在实验后达成实验报告,又能进一步加深和拓宽所学知识。
为了帮助老师和学生展开实验,我们特编了这本实验指导,希望能对我校的?汇编语言?教课工作有所帮助。
本实验指导全部实例均在PC机上浮试经过。
..目录〔1〕利用DEBUG调试汇编语言程序段〔2〕初级程序的编写与调试实验〔一〕〔3〕初级程序的编写与调试实验〔二〕〔4〕汇编语言程序上机过程〔5〕分支程序实验〔6〕循环程序实验〔7〕子程序实验..实验1 利用DEBUG调试汇编语言程序段一.实验目的1.熟习DEBUG相关命令的使用方法;2.利用DEBUG掌握相关指令的功能;3.利用DEBUG运转简单的程序段。
二.实验内容1.进入和退出DEBUG程序;1)开始—运转,输入cmd,点确立进入命令窗口2)在命令窗口中输入dubug进入debug程序..3)进入debug窗口后,输入q命令退出debug2.学会DEBUG中的1〕D命令〔显示内存数据D段地点:偏移地点〕例1:-D100 ;显示DS段,0100开始的128个字节内容说明:指定要显示其内容的内存地区的开端和结束地点,或开端地点和长度。
① D SEGREG[开端地点][L 长度];显示SEGREG段中(缺省内默以为DS),以[开端地点](缺省内为目前的偏移地点),开始的[L长度](缺省内默以为128)个字节的内容.DSEGREG[段地点:偏移地点];显示SEGREG段中(缺省内默以为DS),[段地点:偏移地点]开始的[L长度](缺省内默以为128)个字节内容-D;默认段寄存器为DS,目前偏移地点(刚进入debug程序偏移地点为0100H) ......如要改正,可输入新数据;空格键显示下一个单元内容并可改正,减号键显示上一个单元内容并可改正;如不改正,可直接按空格键或减号键;回车键结束命令。
南昌大学实验报告1

南昌大学实验报告学生姓名:王岩学号:6100308239 专业班级:自动化084班实验类型:□验证□综合■设计□创新实验日期:2011-11 实验成绩:实验一三容水箱专家控制一、实验目的1、熟悉三溶液位控制的组成原理2、通过实验进一步掌握专家控制原理及实现二、实验设备及条件计算机(装有MATLAB)三、实验原理图一所示为三容水箱液位控制系统,控制目的是使下水箱液位等于给定值,并能克服来自系统内部和玩不扰动的影响。
三容水箱的结构图如图二,该被控对象具有非线性和时滞性,要建立精确的数学模型比较困难,专家控制可以避开复杂的数学模型,通常还可以在非线性、大偏差下可靠的工作,具有灵活性、适应性和鲁棒性。
本实验采用直接型专家控制器,专家控制器的输入为偏差e和误差变化率ec,e=r-y,ec=de/dt.r和y分别是液位给定值和测量值。
四、实验设计过程及结果1、写出三容水箱各流量液位的数学表达式:2、用matlab 编写程序,调整各参数,使在程序执行数圈后,满足两个条件: 1)液位为0时,阀门开到最大,能使水箱流满 2)水箱满时,调节阀门小,能使水箱留空 最后各参数调整后源程序如下:clear all; close all; h1=00; h2=00;h3=00;%液位初始化 s=120;k=90; %阀门开度 for i=1:800Q1=2.2*k;Q2=13.8*sqrt(h1); h1=h1+(Q1-Q2)/s; Q3=13.4*sqrt(h2); h2=h2+(Q2-Q3)/s;Q4=170*abs(sin(2.58*pi*i+0.45)); h3=h3+(Q3-Q4)/s; end3)1(33433|sin |*43222321112*121h k h h sQ Q h x v Q SQ Q h h a Q SQ Q h h a Q k b Q ∆+-=-=∆=-=∆=-=∆==clear all;close all;h1=200;h2=200;h3=200;%液位初始化s=120;k=10; %阀门开度for i=1:800Q1=2.2*k;Q2=13.8*sqrt(h1);h1=h1+(Q1-Q2)/s;Q3=13.4*sqrt(h2);h2=h2+(Q2-Q3)/s;Q4=170*abs(sin(2.58*pi*i+0.45));h3=h3+(Q3-Q4)/s;end如上图所示,当水箱h1、h2、h3均为空时,将阀门调整到90,能使各水箱流满;当水箱h1、h2、h3均为满时,将阀门调整到10,能使各水箱流空;所以,该模型可以实现三容水箱液位控制。
南昌大学物理实验报告范文分光计调节与使用_分光计实验总结范文

南昌大学物理实验报告范文分光计调节与使用_分光计实验总结范文分光计的调整及光栅常数的测量一实验目的1了解分光计的结构,掌握调节分光计的方法。
2观察光栅的衍射光谱,理解光栅衍射基本规律。
3学会测定光栅的光栅常数.二实验仪器分光计、光栅、低压汞灯电源、平面镜等三实验原理衍射光栅、光栅常数图40-1中a为光栅刻痕(不透明)宽度,b为透明狭缝宽度。
d=a+b为相邻两狭缝上相应两点之间的距离,称为光栅常数。
它是光栅基本参数之一。
图40-1图40-2光栅衍射原理图图40-1中a为光栅刻痕(不透明)宽度,b为透明狭缝宽度。
d=a+b为相邻两狭缝上相应两点之间的距离,称为光栅常数。
它是光栅基本参数之一。
2.光栅方程、光栅光谱由图40-1得到相邻两缝对应点射出的光束的光程差为:式中光栅狭缝与刻痕宽度之和d=a+b为光栅常数,若在光栅片上每厘米刻有n条刻痕,则光栅常数cm。
为衍射角。
当衍射角满足光栅方程:(k=0,±1,±2…)(40-1)时,光会加强。
式中为单色光波长,k是明条纹级数。
图40-3如果光源中包含几种不同波长的复色光,除零级以外,同一级谱线将有不同的衍射角因此,在透镜焦平面上将出现按波长次序排列的谱线,称为光栅光谱。
相同k值谱线组成的光谱为同一级光谱,于是就有一级光谱、二级光谱……之分。
图40-3为低压汞灯的衍射光谱示意图,它每一级光谱中有4条特征谱线:紫色1=435.8nm,绿色2=546.1nm,黄色两条3=577.0nm和4=579.1nm。
图40-3四实验步骤1调节分光计调整望远镜:a目镜调焦:清楚的看到分划板刻度线。
b调整望远镜对平行光聚焦:分划板调到物镜焦平面上。
c调整望远镜光轴垂直主轴:当镜面与望远镜光轴垂直时,反射象落在上十字线中心,平面镜旋转180°后,另一镜面的反射象仍落在原处。
(2)调整平行光管发出平行光并垂直仪器主轴:将被照明的狭缝调到平行光管物镜焦面上,物镜将出射平行光。
南昌大学微机原理实验报告

实验报告实验课程:汇编原理与微机接口技术学生姓名:信念学号:520---1314专业班级:网络间谍***2***年 12 月 12 日目录一、实验一 (3)二、实验二 (5)三、实验三 (8)四、实验四 (10)五、实验五 (12)六、实验六 (18)南昌大学实验报告一学生姓名:信念学号:520---1314 专业班级:网络间谍***班实验类型:□验证□ 综合▥设计□ 创新实验日期: 2***.11.3 实验成绩:一、实验名称实验设备简介二、实验内容了解并熟悉SICElab『赛思』开放式综合实验/仿真系统及G2010+实验平台、实验设备。
三、实验目的了解实验设备、搭建实验平台四、实验器材(1)G2010+实验平台1台(2)G6W仿真器1台(3)连线若干根五、实验设备及说明1 仿真工具伟福公司所有的产品,包含一个项目管理器,一个功能强大的编辑器,汇编Make、build和调试工具并提供一个与第三方编译器的接口2 实验平台新型实用模块:(1)LCD液晶实验(2)点阵LED广告屏(3)DS12887 实时钟(4)红外线发送、接收(5)直流电机恒速(6)电子琴模拟实验(7)串行ROM/I2C ROM (8)步进电机变速传感器实验:(1)温度传感器(2)压力传感器(3)霍尔传感器(4)红外传感器传统实验模块:(1)模数转换A/D0809(2)数模转换D/A0832(3)8155控制键显(4)V/F转换LM331(5)串口通讯MAX232(6)音响实验LM386 7)EPROM27C256扩展(8)RAM6264扩展(9)微型打印机接口(10)PWM模块通用实验模块:(1)模拟信号发生器(2)开关量发生器(3)发光二极管组(4)信号发生器(5)74LS138译码器(6)分频器电路(7)LED6位数码管(8)20个键盘组(9)逻辑笔(10)常用门电路自由实验模块:由DIP40锁紧插座及240个插孔组成,CPU所有信号均以插孔方式引出,还设计了常用门电路、晶振源、电源插孔等,可以完成以上实验模块的组合实验以及由实验者自行命题和新器件、新方案的实验,使得实验方式和内容不受限制。
汇编实验报告(详细版)

计算机组成与汇编语言(实验报告)内容: 实验一、六、七、八院系专业:计算机学院计算机科学与技术姓名:xxxxxxxxx学号:*******xxxxx完成时间:2012年12月1日计算机组成与汇编语言实验报告printf("输入的二进制数不正确!!");break;}}}if(a[15]=='1')s++;for(i=1;i<16;i++){if(a[15-i]=='1')s+=(1<<i);}printf("二进制: ");puts(a);printf("对应的十进制为: ");printf("%d\n",s);}程序1运行结果:实验情况与体会:运行过程中出现过不能判断是否输错的情况以及权位判断有误等情况,经过思考和修改后修改正确,说明理解好二进制与十进制之间的转换过程很重要。
编程过程中主要碰到的问题是,不够十六位的时候要在前面补零。
转换方法主要是除二求余的方法。
注:篇幅不够,可以另外附页。
计算机组成与汇编语言实验报告姓名xxxx 学号2011004xxxx 计分专业软件工程班级xxxxx 实验日期2012年 12 月 1日实验名称实验六分支结构程序设计实验目的●熟悉有符号定点数的表示。
●掌握原码、补码、反码之间的相互转换程序设计。
实验内容说明:该程序中X=23,Y=45,他们之差的绝对值为22,用16进制表示为0016H,即图中显示的结果2.调试程序2:DATA SEGMENTADD AL, 07HLP4: ADD AL, 30H ;将低四位转化为相应的ASCII码并以字符形式输MOV DL, ALMOV AH, 2INT 21HMOV AH, 4CHINT 21HCODE ENDSEND START上机运行该程序并检查运行结果是否正确。
上机实验过程:说明:求出三个数里面的最大数73;3. 编写程序1:编程实现从键盘输入一位数字,判断其奇偶性,并在屏幕上输出一个标志,若为奇数,则输出1,否则输出0。
南昌大学试验报告范文-南昌大学网络教学平台

南昌大学试验报告范文-南昌大学网络教学平台实验项目名称:_______膨胀计法测定聚合物的玻璃化转变温度______________学生姓名:____________学号:___________专业班级:______________实验类别:基础专业实验要求:必修选修一、实验目的1.了解膨胀计测量聚合物玻璃化温度的方法2.深入理解自由体积概念在高分子学科中的重要性。
二、实验基本原理在玻璃态下,由于链段运动被冻结,自由体积也被冻结,聚合物随温度升高而发生的膨胀只是由于正常的分子膨胀过程造成的,而在Tg以上,除了正常的分子膨胀过程外,还有自由体积的膨胀,因此高弹态的膨胀系数比玻璃态的膨胀系数来得大。
若以比容对温度作图,在Tg就要发生斜率的变化。
三、主要仪器设备及耗材膨胀计、水浴及加热器、颗粒状尼龙6、丙三醇。
四、实验步骤1.洗净膨胀计,烘干。
装入尼龙6颗粒至比重瓶的4/5体积。
2.在膨胀管内加入丙三醇作为介质,用玻璃棒搅动(或抽气)使膨胀管内没有气泡。
3.再加入丙三醇至比重瓶口,插入毛细管,使丙三醇的液面在毛细管下部,磨口接头用弹簧固定,如果管内发现有气泡要重装。
4.将装好的膨胀计浸入水浴中,于30C恒定20min后,设置最高温度为60C,控制水浴升温速率约为1.25C/min。
5.读取水浴温度和毛细管内丙三醇液面的高度,从30~55C每升高1C读数一实验类型:验证综合设计创新实验日期:___________实验成绩:________次(升温速率控制为0.5C/min),到55C为止。
6.毛细管内液面高度对温度作图。
从直线外延点求得升温速度1.25C/min下尼龙6的Tg。
五、实验数据及处理结果4.03.93.8h/mm3.73.63.53.43.3354045o5055Tamperature/C升温速度1.25C/min下尼龙6的Tg为44C。
六、思考讨论题或体会或对改进实验的建议略1.何平笙,杨海洋,朱平平,瞿保均.高分子物理实验.合肥:中国科学技术大学出版社,20022.陈义旺.高分子物理实验补充讲义.南昌大学,2006南昌大学实验报告实验项目名称:______________聚合物的温度-形变曲线__________________学生姓名:____________学号:___________专业班级:______________实验类别:基础专业实验要求:必修选修一、实验目的1.正确理解聚合物的三个力学状态和二个转变。
南昌大学电力电子技术实验报告(打印上交)汇总

电力电子技术实验报告学生姓名:学号:学院名称:专业班级:目录实验一锯齿波同步移相触发电路实验 (1)实验二正弦波同步移相触发电路实验 (4)实验三单相桥式全控整流电路实验 (7)实验四单相桥式半控整流电路实验 (11)实验五三相桥式全控整流及有源逆变电路实验 (16)实验六直流斩波电路实验 (19)实验七三相半波可控整流电路的研究 (21)实验一锯齿波同步移相触发电路实验一.实验目的1.加深理解锯齿波同步移相触发电路的工作原理及各元件的作用。
2.掌握锯齿波同步触发电路的调试方法。
二.实验内容1.锯齿波同步触发电路的调试。
2.锯齿波同步触发电路各点波形观察,分析。
三.实验线路及原理锯齿波同步移相触发电路主要由脉冲形成和放大,锯齿波形成,同步移相等环节组成,其工作原理可参见“电力电子技术”教材。
四.实验设备及仪器1.NMCL系列教学实验台主控制屏2.NMCL-32组件和SMCL-组件3.NMCL-05组件4.双踪示波器5.万用表五.实验方法图1-1 锯齿波同步移相触发电路1.将NMCL-05面板左上角的同步电压输入接到主控电源的U、V端,“触发电路选择”拨向“锯齿波”。
2. 将锯齿波触发电路上的Uct接着至SMCL-01上的Ug端,‘7’端地。
3.合上主电路电源开关,并打开NMCL-05面板右下角的电源开关。
用示波器观察各观察孔的电压波形,示波器的地线接于“7”端。
同时观察“1”、“2”孔的波形,了解锯齿波宽度和“1”点波形的关系。
观察“3”~“5”孔波形及输出电压U G1K1的波形,调整电位器RP1,使“3”的锯齿波刚出现平顶,记下各波形的幅值与宽度,比较“3”孔电压U3与U5的对应关系。
4.调节脉冲移相范围将SMCL-01的“Ug”输出电压调至0V,即将控制电压Uct调至零,用示波器观察U1电压(即“1”孔)及U5的波形,调节偏移电压Ub(即调RP2),使α=180˚。
调节NMCL-01的给定电位器RP1,增加Uct,观察脉冲的移动情况,要求Uct=0时,α=180˚,Uct=Umax时,α=30˚,以满足移相范围α=30˚~180˚的要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告实验课程:汇编语言学生姓名:学号:专业班级:2012年12 月7日目录(1)汇编语言上机过程 (1)(2)串处理指令与子程序 (6)(3)中断服务程序 (19)(4)文件操作与字显示缓存 (24)实验1 汇编语言程序上机过程I------ 手工方式一.实验目的熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。
了解汇编语言程序的汇编、运行环境。
二.实验内容1.掌握常用的编辑工具软件(如WORD、EDIT)、MASM和LINK的使用;2.伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP;3.利用的INT 21H的1号功能实现键盘输入的方法;三.实验要求1.仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的内容;2.了解利用的INT 21H的1号功能实现键盘输入的方法,了解.EXE文件和.COM 文件的区别及用INT 21H 4C号功能返回系统的方法;3.阅读下面程序段。
四.实验环境PC微机DOS操作系统或 Windows 操作系统MASM。
EXE,LINK。
EXE,DEBUG。
COM五.实验步骤程序:data segmentmessage db 'This is a sample program of keyboard and disply'db 0dh,0ah,'Please strike the key!',0dh,0ah,'$' data endsstack segment para stack 'stack'db 50 dup(?)stack endscode segmentassume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axmov dx,offset messagemov ah,9int 21hagain:mov ah,1int 21hcmp al,1bhje exitcmp al,61hjc ndcmp al,7ahja ndand al,11011111bnd:mov dl,almov ah,2int 21hjmp againexit:mov ah,4chint 21hcode endsend start实验步骤:1.用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。
2.用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。
若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。
3.用TYPE命令显示1产生的.LST文件。
4.用LINK将.OBJ文件连接成可执行的.EXE文件。
5.在DOS状态下运行LINK产生的.EXE文件。
即在屏幕上显示标题并提示你按键。
每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。
按ESC 键可返回DOS。
若未出现预期结果,用DEBUG检查程序。
汇编语言程序上机过程II-------集成环境一.实验目的熟悉汇编集成环境RADASM。
二.实验内容熟练掌握RADASM编程环境,对照实验一,理解集成环境的优势。
三.实验要求1.仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的内容;2.了解利用的INT 21H的1号功能实现键盘输入的方法,了解.EXE文件和.COM 文件的区别及用INT 21H 4C号功能返回系统的方法;3.阅读下面程序段。
四.实验环境PC微机DOS操作系统或 Windows 操作系统汇编集成环境RADASM五.实验步骤(1).首先新建一个在DOS下的工程。
(2).建好后可以在其他磁盘打开ASM文件,或者是直接复制后粘贴在编译器中。
(3).通过编译器进行编译检错,没错就连接,构建,最后运行。
(4).若是没有输出正确的结果,可以在DOS调试器中运行,一步步检查程序的运行。
知道结果输出正确。
程序:data segmentmessage db 'This is a sample program of keyboard and disply'db 0dh,0ah,'Please strike the key!',0dh,0ah,'$' data endsstack segment para stack 'stack'db 50 dup(?)stack endscode segmentassume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axmov dx,offset messagemov ah,9int 21hagain:mov ah,1int 21hcmp al,1bhje exitcmp al,61hjc ndcmp al,7ahja ndand al,11011111bnd:mov dl,almov ah,2int 21hjmp againexit:mov ah,4chint 21hcode endsend start执行完后可以得到输出结果:六.实验心得这次实验通过两种不同的方式来运行这些指令,来体会这些指令的作用。
第一种方式是手工方式,即通过自己把指令输入,再一步步地编译,连接,执行,并且在编译时出现的错误进行调试改正。
这个手工方式很麻烦,当时就想应该有一款软件来解决这个问题,事实也确实如此,老师教给我们另一种方式,即在集成环境里来完成这些步骤,这种方式明显简单多了,当刚开始还是有点生疏,所以以后还得多上机练习。
虽然能在电脑上运行这些指令,不过对于这些代码到底是完成什么任务确不是很清楚,以后慢慢学习应该就知道了吧。
实验2串处理指令与子程序-------字符处理一. 实验目的1.熟悉串操作指令的功能与应用;2.掌握串操作指令的寻址方式及使用方法,编写常用的字符串处理程序。
二.实验内容1.字符串统计。
从键盘最多输入80个字符存放在STR开始的存储区中,统计其中含有小写字母的个数,将统计结果以两位十进制数显示在屏幕上。
2.删除重复字符。
从键盘最多输入80个字符存放在STR开始的存储区中,删除其中重复的字符,输出删除处理后的字符串。
三. 实验要求1.认真预习有关串操作的指令极其寻址方式的特点,能够正确使用串操作指令,并准备好数据。
2.依题意分析给出程序设计算法。
四.实验环境PC微机DOS操作系统或 Windows 操作系统MASM.EXE,LINK.EXE,或宏汇编集成环境RADASM五.实验步骤1.统计小写字母个数的程序清单:DATA SEGMENTMSG1 DB 'Input a string:',0AH,0DH,'$'MSG2 DB 'The number of lowercase letter is:$'STR DB 80 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AX;输出提示LEA DX,MSG1MOV AH,9INT 21HLEA DI, STRMOV CL, 0 ;CL用来记录输入字符数AGAIN: MOV AH, 1INT 21HCMP AL,0DHJZ DONE ; 输入回车键则转DONEMOV [DI],ALINC DIINC CLJMP AGAINDONE: LEA SI,STRMOV CH,0 ;CX保存输入字符数MOV BL,0 ;BL用来统计小写字符个数CLDCYCLE: LODSBCMP AL,'a'JB NEXTCMP AL,'z'JA NEXTINC BLNEXT: LOOP CYCLE;回车换行MOV AH,2MOV DL,0AHINT 21HMOV DL,0DHINT 21H;输出提示LEA DX,MSG2MOV AH,9INT 21H;以下显示输入小写字母个数的两位十进制数 MOV AL,BL ;小写字符个数送ALMOV AH,0 ;AX存放小写字符个数MOV CL,10DIV CL ;十位数在AL中,个位数在AH中 MOV BX,AX ;十位数在BL中,个位数在BH中 MOV DL,BLMOV AH,2OR DL,30HINT 21H ;输出小写字母个数的十位数字 MOV DL,BHOR DL,30HMOV AH,2INT 21H ;输出小写字母个数的个位数字MOV AH,4CHINT 21HCODE ENDSEND START2.删除字符串中重复字符的源程序清单:DATA SEGMENTSTR DB 80 DUP(?)LEN DW ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AX ;初始化数据段和附加段为同一段值LEA SI,STR ;SI<=输入串的首地址;从键盘输入字符串MOV CL,0 ;CL用来存放输入字符数AGAIN: MOV AH,1INT 21HCMP AL,0DH ;回车结束输入JZ IN_DONEMOV [SI],ALINC SIINC CLJMP AGAININ_DONE: MOV CH,0 ;CX存放输入字符数MOV LEN,CX ;将输入字符数保存到LEN;将输入字符串中重复出现字符替换为0LEA SI,STR ;SI<=输入串的首地址MOV DI,SIINC DIAGN: CMP CX,1JZ OK ;只有剩一个字符就结束替换PUSH CX ;保护外层循环计数MOV AL,[SI]AND AL,ALJZ NEXT ;当前字符已被替换为0L1: CMP AL,[DI]JNZ L2MOV BYTE PTR[DI],0L2: INC DILOOP L1 ;内部循环,扫描当前字符后面是否与当前字符相同,相同则用0替换 NEXT: INC SIMOV DI,SIINC DIPOP CXLOOP AGNOK: ;将那些被替换成0的字符去掉LEA SI,STR ;SI<=输入串的首地址MOV CX,LENRPT: AND CX,CXJZ RTN ;CX=0结束子程序MOV AL,[SI]AND AL,ALJNZ NEXT1 ;当前字符不是被替换为0的字符 PUSH CXMOV DI,SIXOR BX,BXCLDREPZ SCASBJNZ L3POP CXJMP RTN ;后面全是0,不用再继续L3: DEC DIMOV AL,[DI]MOV [SI],ALMOV BYTE PTR[DI],0POP CXNEXT1:INC SIDEC CXJMP RPTRTN: ;回车换行MOV AH,2MOV DL,0AHINT 21HMOV AH,2MOV DL,0DHINT 21H;输出结果LEA SI,STR ;SI<=输入串的首地址MOV CX,LENMOV AH,2LOP: MOV DL,[SI]CMP DL,0JZ EXITINT 21HINC SILOOP LOPEXIT: MOV AH,4CHINT 21HCODE ENDSEND START串处理指令与子程序-------子程序一.实验目的1.掌握主程序与子程序之间的调用关系及调用方法;2.掌握子程序调用过程中近程调用与远程调用的区别;3.掌握通过堆栈转送参数的方法。