




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一汇编语言上机操作训练——比较字符串一、实验目的1、学习程序设计的基本方法和技能;2、熟练掌握汇编语言设计、编写、调试和运行;二、实验内容和要求1、汇编语言程序上机操作方法编写一程序,比较两个字符串STRING1和STRING2所含字符是否相同,若相同刚在屏幕上显示‘MATCH’,否则,显示‘NOTMATCH’。三、实验主要仪器设备和材料计算机一台四、程序略五、调试过程:1、执行程序表示两字符串相同2、u命令反汇编:3、在程序执行以前的寄存器情况:内存情况:4、用E命令修改数据区字符串及修改前后内存数据区的对比:5、用G命令查看修改后的情况:修改后的字符串不相同了。六、程序功能与调试过程中遇到的问题1、分析程序功能程序的功能是比较string1与string2所含字符是否相同,若相同则在屏幕上显示‘MATCH’,否则,显示‘NOTMATCH’。因为string1为‘Movethecursorbackward’,string2为’Movethecursorbackward’。所以string1与string2相同,显示’MATCH’。后面用重新修改了下这些字符,会显示“notMatch”2、调试程序过程中遇到的问题对汇编认识停留在上课老师的文字表达,至于实际操作,可以说完全不懂,只能在实验室里对着实验书一步步做下去,没遇到什么问题。但是回到宿舍中,连在哪输入都不知道,可想而知对汇编的认知度。好在在同学们的帮助下,还是能够顺利的完成了实验。只是做的时候对有些过程与指令不太明白,经过查阅相关资料后之后,也弄明白了个大概,希望在以后的微机课程学习中多用心。七、思考题1、将内存DATA1单元开始的0~15共16个数传送到DATA2单元开始的数据区中。MOVAX,DATAMOVDS,AXMOVES,AXLEASI,DATA1LEADI,DATA2MOVCX,16CLDREPMOVSB2、将程序中的指令JZMATCH改为JNZMATCH,程序结果如何?为什么?JZ为零标志为1转移,而JNZ为零标志为0转移。所以当为JNZMATCH后,当两字符串比较时,输出为‘NOMATCH’,不相同时为‘MATCH’。因此,程序结果为‘NOMATCH’。实验二分支、循环、及子程序设计实验目的学习循环程序的基本结构和设计方法;熟练掌握程序的调试方法;实验内容和要求 本程序采用两重循环来实现,内层对应学生的名次计算,外层解决所有学生的名次;以GRADE为首地址的10个字保存学生的成绩,RANK为地址的10个字填入学生的名次。本程序对应的寄存器分配情况说明如下:AX:存放当前被测学生的成绩;BX:存放当前被测学生的相对地址指针;CX:内循环计数值;DX:当前被测学生的名次计算值;SI:内循环测试时的地址指针;DI:外循环计数值;实验主要仪器设备和材料: 计算机一台;实验方法、步骤及结构测试1程序略2程序框图如下:YYYNNN开始外循环初始化工作:外循环计数器(DI)=10外循环指针(BX)=0AX=学号为[BX]的学生的成绩内循环初始化工作:名词值(DX)=0内循环计数值(CX)=10内循环指针SI=GRADE首地址AX>SI?YYYNNN开始外循环初始化工作:外循环计数器(DI)=10外循环指针(BX)=0AX=学号为[BX]的学生的成绩内循环初始化工作:名词值(DX)=0内循环计数值(CX)=10内循环指针SI=GRADE首地址AX>SI?DX++内循环指针SI+2CX--CX=0?Rank[BX]=DXBX+2DI--DI=0?结束3程序执行在调试模式下,利用反汇编指令(U)得到的程序代码段如下截图所示:五实验报告要求1程序框图上图即是,双重循环结构外循环包含内循环,当外循环结构每执行一次循环时,内循环结构在一般情况下要从循环的开始到循环的正常结束从头到尾执行一遍。2改变程序的结果为10进制通过修改程序代码,实现了将程序结果改为10进制形式。程序代码及运行结果截图如下(修改或增加部分用下划线标识):DataSEGMENT Gradedw88H,75H,95H,63H,98H,78H,87H,73H,90H,60H ;实际上,若将两个十六进制数(各位数字仅限于(0~9))直接看成十进制数用以相比较,则大者恒大。 ;所以可以在定义数据段就直接将分数(十进制数)当十六进制数输入,虽然缩小了可以支持的数字大小;范围,但不影响程序功能。通过这样可以实现输出结果更加直观。 Rankdw 10dup(?)DataENDSProgramsegmentMainprocfar Assumecs:program,ds:dataStart: Pushds Subax,ax Pushax Movax,data Movds,ax Movdi,10 Movbx,0Loop1: Movax,grade[bx] Movdx,0 Movcx,10 Leasi,gradeNext: Cmpax,[si] Jgno_count Pushax ;将ax的内容压入堆栈进行保护 Movax,dx ;将dx的内容传给ax并加一,同时用Daa指令调整为十进制 Addax,1Daa Movdx,ax ;将调整后的内容返回给dx Popax ;恢复ax的原内容No_count: Addsi,2 LoopNext Movrank[bx],dx Addbx,2 Decdi Jneloop1 retMainendpProgramends endStart结果截图:六思考题调试程序时,当用户数据设置好后,程序应运行到什么位置才可以查看结果答:应通过G命令运行到RET指令所在行,并用D指令查看数据段起始地址的内容。程序的数据段定义为字单元,可否用字节来定义?答:可以,只需在数据段定义里把DW修改为DB,并且在程序里作出相应修改则可。七总结两次微机上机实验真的让我受益良多,上课的时候几乎都不知道那些指令指的的什么意思,按照课本做完了,才回到宿舍去找资料填补这方面的知识欠缺,还有很多不懂的,希望老师能多多指教。实验三显示程序设计实验(一)实验目的1,学习显示器I/O程序设计方法;2,了解系统功能中断的设计方法;3,了解键盘光标键是如何公职;实验内容和要求1,用键盘上的上下左右键控制光标的移动.2,按行号*列号的形式给方块字符(ACS2码为0BDH)在屏幕上定位,按上下左右光标键使光标在屏幕上移动,光标的移动由方块字符组成的图形而在屏幕上保留下轨迹.实验主要仪器设备和材料计算机实验方法,步骤及结构测试源程序略运行结果五,实验报告要求1,显示器是如何定义窗口的大小的?显示器根据数据显示的单元数,v_buff db 25*80*2dup(?)定义窗口大小的.2,在文本方式下,什么是属性值?blockequ0dbh是定义的属性值,v_buff+bx+1,是放每个单元(一共25*80个)属性值的地方,即每个单元的高字节。六,思考题光标轨迹运行到边界后,为什么光标会闪烁和改变颜色?若要光标不变,应如何修改程序?答:光标移位所使用的语句是循环移位,当光标由边界移到另一边边界时方块字符的属性值发生错位相乘,所以光标会闪烁和改变颜色。若要光标不变,应将循环移位ROL改为逻辑移位SHL。七,实验心得在第一次按照书上输入代码后发现运行不了,检查后发现书上代码有误,根据错误显示排除了错误Jnznot_down,还有一些标点加上后,在运行后根据代码内容了解了光标移位为循环移位.另外根据程序修改了前背景色和后背景色0700h可以根据自己的想法去修改,最后还添加了7色光标效果,感觉很神奇,贪食蛇游戏应该与这个程序有关。显示程序设计实验(二)一,实验目的了解INT21H部分功能号的功能和使用方法掌握字符方式下PC机显示器显示控制.实验程序1运行结果:修改程序:stackSEGMENTDW64DUP(?)stackENDScodeSEGMENTASSUMECS:code,SS:stackstart:MOVCX,0008ha0:PUSHCXMOVBL,31hMOVCX,0009hMOVAH,02ha1:MOVDL,BLINT21hINCBLPUSHCXa2:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗安全与风险管理的法规遵循与执行
- 复杂性区域疼痛综合征的临床护理
- 兴唐镇中心小学2025年教科研工作总结模版
- 实习总结模版
- 医疗大数据挖掘与健康教育新模式
- 2025年会计基础知识点总结模版
- 医技新风医疗技术与健康科学的深度融合发展探讨
- 区块链教育培养未来技术领导者
- 中药材产业中质量追溯体系的构建与优化-基于区块链技术的研究
- 医疗信息安全的国际比较与借鉴
- 预防性侵害安全教育
- MOOC 大学英语听说译-河南理工大学 中国大学慕课答案
- 受托支付合同
- D502-15D502等电位联结安装图集
- 牛排西式餐厅管理餐饮培训资料 豪客来 服务组排班表P1
- 一文看懂友宝在线招股书
- 医院传染病知识培训PPT课件
- KYN28A-12高压开关柜使用说明书
- pvc管采购合同
- DL/T 5203-2005《火力发电厂煤和制粉系统防爆设计技术规程》简介
- 禁化武自查报告
评论
0/150
提交评论