




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HYPERLINK”http://sh/"实验一汇编语言上机认识实验一、实验主要内容1、汇编语言源程序文件的建立;2、汇编程序的编辑、汇编、连接、运行.二、实验目的熟悉汇编语言的上机环境,掌握汇编程序的编辑、汇编、连接、运行等步骤。三、实验具体操作过程汇编语言的上机的一般步骤为:编辑(用编辑程序形成汇编语言源程序)、汇编(用汇编程序将源文件汇编成目标文件)、连接(用连接程序将目标程序转换为可执行文件)、调试运行(执行可执行性文件,若有错误,利用DEBUG调试程序进行调试,直到没有错误为止)。1、进入DOS系统单击windows的“开始”按钮,再单击“运行”命令,输入“cmd”命令,进入DOS模式。再利用相应的DOS命令,切换到masm目录下。2、编辑.asm源程序在DOS提示符下输入“edit001.asm”,建立一个汇编源程序文件,本次实验的程序是在屏幕上输出一个字符串“Thisisasampleprogram!”,具体程序如下:DATASEGMENTﻩ BUFDB'THISISASAMPLEPROGRAM!' DB0DH,0AH,’$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:ﻩMOVAX,DATAMOVDS,AXﻩﻩMOVAH,9ﻩﻩLEADX,BUFﻩ INT21HﻩﻩMOVAH,4CHﻩﻩINT21H CODEENDSENDSTART3、汇编在dos提示符下输入命令“masm001。asm”,若发现有语法错误,请回到源程序进行修改;若无错误,进行下一步。4、连接在dos提示符下输入命令“link001.obj"。5、运行在dos提示符下输入命令“001”,发现屏幕上输出“Thisisasampleprogram!”,实验完成。ﻬ实验二DEBUG的应用一、实验主要内容1、进入和退出DEBUG程序2、使用DEBUG中的常用命令二、实验目的1、熟悉DEBUG有关命令的使用方法2、学会利用DEBUG掌握有关指令的功能3、学会利用DEBUG运行简单的程序段三、实验具体操作过程1、debug的启动与退出在dos提示符下输入“debug",并回车,可进入debug状态;在debug提示符下输入“q”,可返回dos提示符。2、用R命令查看、改变CPU寄存器的内容①输入“r",回车,可看到CPU内部所有寄存器内容和标志位状态;②输入“RAX”,可显示AX的值,并将AX的值修改为1234H;3、汇编命令A在debug提示符下,输入“A100”,输入几条汇编指令。MOVAL,0CADDAL,1EADCAL,304、单步执行命令T先输入命令“T=0”,然后每次都输入命令“T”,查看输入的每条指令执行后的状态.5、调试应用程序debug001。exe6、反汇编指令U在debug提示符下,输入“U”指令,显示001.exe的汇编指令。5、运行命令G输入命令“G”,运行001.exe中的所有指令;输入命令“G=13f0:0d",运行指定区域内的指令。7、显示内存单元命令D输入“D1389:0100”,显示1389H:0100H单元为首的内存区域中存放的内容。8、修改内在单元命令E输入“E1389:0100”,将0100H单元的内容修改为FFH。
实验三顺序结构程序设计一、实验主要内容将两个2字节长的二进制数相加,运算结果存放在相应结果单元中.二、实验目的掌握汇编语言的顺序结构程序设计方法。三、实验具体操作过程1、流程框图2、源程序DATASEGMENTDATA1DB1,2;被加数DATA2DB5,6;加数DATA3DB0,0;和DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,0CLC;清进位标志MOVAL,DATA1[SI]ADCAL,DATA2[SI];第一个字节相加MOVDATA3[SI],ALINCSIMOVAL,DATA1[SI]ADCAL,DATA2[SI];第二个字节相加MOVDATA3[SI],AL;.。。。。.....输出显示部分.。...。..MOVBX,OFFSETDATA3MOVDL,[BX]ADDDL,30HMOVAH,2INT21HINCBXMOVDL,[BX]ADDDL,30HMOVAH,2INT21H;..。.。....。输出显示结束。...。。..MOVAH,4CHINT21H;返回DOSCODEENDSENDSTARTﻬ实验四分支结构程序设计一、实验主要内容接收键盘输入字符,将其中的小写字母转换为大写字母.二、实验目的学会汇编语言的分支结构程序设计方法。三、实验具体操作过程1、流程框图2、源程序DATASEGMENTMSGDB‘ERROR!',0DH,0AH,‘$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,1INT21H;读入一字符送入ALCMPAL,‘a'JBERR;不是小写字母转出错处理CMPAL,‘z’JAERR;不是小写字母转出错处理SUBAL,32;转换成大写字母后送到ALMOVDL,ALMOVAH,02INT21H;输出转换后的字符OVER:MOVAH,4CHINT21H;返回DOSERR:MOVDX,OFFSETMSGMOVAH,09INT21HJMPOVERCODEENDSENDSTART
实验五循环结构程序设计一、实验主要内容统计一个有10人的班中,男、女生的人数各为多少。将统计结果的男生人数存入变量BOY中,女生人数存入变量GIRL中。二、实验目的掌握汇编语言的循环结构基本设计方法.三、实验具体操作过程1。流程框图2.参考程序DATASEGMENTBOYDB0;存放男生人数GIRLDB0;存放女生人数COUNTEQU10;班里的总人数DISPDB0DH,0AH,‘BOYORGIRL1/0?’,‘$’DISP1DB0DH,0AH,‘BOY:’,‘$’DISP2DB0DH,0AH,‘GIRL:’,‘$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,COUNTINPUT:MOVDX,OFFSETDISPMOVAH,9INT21HMOVAH,1INT21H;读入一个字符CMPAL,‘1';是男生?JZBOYCOUNTCMPAL,‘0’;是女生?JZGIRLCOUNTJMPINPUTBOYCOUNT:INCBOY;男生人数加1JMPLOOPNEXTGIRLCOUNT:INCGIRL;女生人数加1LOOPNEXT:LOOPINPUTMOVAH,4CHINT21H;返回DOSCODEENDSENDSTARTﻬ实验六子程序设计一、实验主要内容编写一个程序,将BUF开始的10个单元中的二进制数转换成两位十六进制数的ASCII码,在屏幕上显示出来。要求码型转换通过子程HEXAC实现,在转换过程中,通过子程序DISP实现显示。二、实验目的1、掌握汇编语言子程序的设计方法;2、掌握主程序与子程序之间的调用关系及调用方法。三、实验具体操作过程1、分析:该实验程序用子程序的近程调用实现。由于在调用HEXASC子程序时,子程序又调用了DISP子程序,这叫子程序的嵌套调用。实验过程中可以从堆栈的内容看到两个子程序的返回地址值.由于是近调用,地址值只包括返回地址的段内偏移量。在每个子程序的执行中,检查CS值是不变的。2、源程序DATASEGMENTBUFDB0ABH,0CDH,0DEH,01H,02H,03HDB3AH,4BH,5CH,6FHDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,10LEABX,BUFAGAIN:MOVAL,[BX]CALLHEXASCINCBXLOOPAGAINMOVAH,4CHINT21HHEXASCPROCNEARMOVDL,ALPUSHCXMOVCL,4SHRDL,CLPOPCXCALLDISP;显示高位HEX数MOVDL,ALANDDL,0FHCALLDISPRETHEXASCENDPDISPPROPCMPDL,9JBENEXTADDDL,7NEXT:ADDDL,30HMOVAH,2INT21H;显示RETDISPENDPCODEENDSENDSTARTﻬ实验七综合程序设计一、实验主要内容设计并实现一个小型应用实例,要求:1、接收从键盘输入的一个班的学生成绩,存放于50字的grade数组中,其中grade+i保存学号为i+1的学生成绩。2、根据grade中学生成绩,把学生名次填入50字的rank数组中,其中rank+i的内容是学号为i+1学生的名次。3、最后按学号顺序把名次从终端显示出来。二、实验目的熟练掌握三种基本结构程序设计、掌握结构化程序设计方法,并能综合运用,从而培养学生综合分析问题和解决问题的能力.三、实验具体操作过程1、在该应用实例中,包括三个方面的内容:一成绩输入;二计算名次;三是排序输出。每一部分可对应一段子程序,程序结构是一个较为典型的层次结构,如下图:① 程序MAIN功能:根据输入的学生成绩,计算并显示出学生名次。②ﻩ程序INPUT功能:接收一个班级学生的成绩,各成绩之间用空格隔开。③ 程序RANKP功能:计算一个班级学生的名次。(可参照循环程序(一)中的程序段)④ﻩ程序OUTPUT功能:输出(显示)一个班级的学生名次⑤ﻩ程序DECIBIN功能:十进制转换二进制,存入BX⑥ﻩ程序BINDEC功能:十进制转换二进制,并在屏幕上显示。⑦ﻩ程序DEC_DIV功能:BX的内容除以CX的内容,并在屏幕上显示一位商.2、程序框图:3、源程序模块名:main.ASM总控模块EXTRNINPUT:FAREXTRNRANKP:FAREXTRNOUTPUT:FARCODESEGMENTASSUMECS:CODESTART:CALLFARPTRINPUTCALLFARPTRRANKPCALLFARPTROUTPUTMOVAH,4CHINT21HCODEENDSENDSTART模块名:INPUT。ASM输入模块PUBLICINPUTPUBLICGRADEPUBLICCOUNTDATASEGMENTPUBLICGRADEDW50DUP(?)COUNTDW?MESS1DB’GRADE?$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAINPUTPROCFARMOVAX,DATAMOVDS,AXLEADX,MESS1MOVAH,09INT21HMOVSI,0ENTER:CALLDECIBININCCOUNTCMPDL,','JZSTORECMPDL,13JZEXITSTORE:MOVGRADE[SI],BXADDSI,2JMPENTEREXIT:MOVGRADE[SI],BXMOVDL,0AHMOVAH,02HINT21HRETDECIBINPROCNEARMOVBX,0NEWCHAR:MOVAH,1INT21HMOVDL,ALSUBAL,30HJLEXIT1CMPAL,9DJGEXIT1CBWXCHGAX,BXMOVCX,10MULCXXCHGAX,BXADDBX,AXJMPNEWCHAREXIT1:RETDECIBINENDPINPUTENDPCODEENDSEND模块名:RANKP。ASM学生成绩名次计算模块EXTRNGRADE:WORDEXTRNCOUNT:WORDPUBLICRANKPPUBLICRANKDATASEGMENTPUBLICRANKDW50DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATARANKPPROCFARMOVAX,DATAMOVDS,AXMOVDX,COUNTMOVBX,0LOOP1:MOVAX,GRADE[BX]MOVRANK[BX],0MOVCX,COUNTLEASI,GRADENEXT:CMPAX,[SI]JGNO_COUNTINCRANK[BX]NO_COUNT:ADDSI,2LOOPNEXTADDBX,2DECD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医护关系探讨
- 美的工程客户培训方案(3篇)
- 洞察2025:社区团购行业竞争格局与可持续发展前景研究报告
- 民生工程手工活动方案(3篇)
- 2025年制造业数字化转型数据治理:数据治理与智能制造设备智能升级的实践案例研究
- 酒店恒温冷库工程方案(3篇)
- 净水工程入户方案(3篇)
- 新能源安全管理2025年报告:创新技术助力安全文化建设
- 疫情下的和谐医患关系
- 2025年能源互联网与智慧农业应用研究报告
- 电子厂安全考试题库及答案大全
- 导管相关性血流感染预防策略
- 2025年七年级语文上册常考必背重点知识梳理总结
- 《管理学基础与实务》 课件 曾宪达 第1-5章 管理与管理者- 目标与计划
- 2025年中国商务礼品数据监测研究报告
- 茶艺知识讲座课件
- 股份赠予员工协议书模板
- 合成氨设备管理培训课件
- 浙江工贸职业技术学院《高等数学Ⅱ》2025-2026学年期末试卷(A卷)
- 闭经中医课件
- 危化品安全管理专项培训
评论
0/150
提交评论