资源描述:
《实验二-指令系统相关程序的编写与调试实验.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、重庆大学学生实验报告实验课程名称汇编语言程序设计开课实验室DS1502学院软件学院年级16专业班软件工程5班学生姓名吉沼橙学号20161717开课时间2017至2018学年第1学期总成绩教师签名王志平软件工程学院制《汇编语言程序设计》实验报告开课实验室:DS1503机房2017年10月 日学院软件学院年级、专业、班16级软件工程5班姓名吉沼橙成绩课程名称汇编语言程序设计实验项目名称实验二:指令系统相关程序的编写与调试指导教师王志平教师评语教师签名:王志平2017年10月日一【实验目的】1.掌握简单的汇编语言程序编写与调试,熟悉常见指令。二【实验环境】lPC微机;lDO
2、S操作系统或Windows操作系统;lMASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境。lDOSBOX.EXE(64位Windows操作系统需要)。 DOSBOX.EXE使用方法1.安装; 2.运行; 3.在输入框状态下Z:>mountCD:masm===>“Z:>”这个是提示符“C”作为虚拟C盘"D:masm"要虚拟的文件夹位置;简洁的讲,把要虚拟的文件夹位置换掉上面的D:masm; 4.在刚才的提示符下输入C:,这样就切换到虚拟的c盘,也就是你要的目录; 5.按照DOS操作系统环境要求运行C:目录下的MASM.EXE,LI
3、NK.EXE,DEBUG.COM等软件。如:C:>MASM123.ASM、C:>LINK123.OBJ、C:>debug123.exe等。三【实验要求】2.阅读数据传送指令、算术运算指令、逻辑指令、数据串传送程序和数据串传送指令MOVS、STOS及重复前辍REP的内容、串操作、逻辑指令、控制转移指令等;3.用DEBUG的有关命令调试本实验中的求累加和程序、多字节加法程序、数据串搬家程序段。四【实验内容】(1)将下面的程序保存为lab2.asm文件,将其生成可执行文件lab2.exe.CodesegmentAssumecs:codeStart:Movax,2000
4、hMovss,axMovsp,0Addsp,4PopaxPopbxPushaxPushbxPopaxPopbxMovah,4chInt21hCodeendsEndstart先转换成asm格式然后转换成obj格式然后转换成exe格式(2)用debug跟踪lab2.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶的内容。开始每一步的执行:1:AX=20002:SS=20003:SP=00044:AX=0000SP=00065:BX=0000SP=00086.7:AX与BX入栈SP由0008到00048:AX与BX出栈SP由0004到00089:AX=4C001
5、0:CS由076A变为F000SP由0008变为0002结束(3)例题:3.50–教材63页。dsegsegmentxdw1234H,5678Hydw2345H,6789Hzdw4637H,3765Hwdw3456H,?4567Hdsegendscsegsegmentassumecs:cseg,ds:dsegbegin:movax,dsegmovds,axmovax,xaddax,ymovbx,x+2adcbx,y+2addax,24adcbx,0subax,zsbbbx,z+2movw,axmovw+2,bxmovah,4chint21hcsegendsendbeg
6、in网上找的代码,调试可用,具体步骤同第一题(4)例题:3.56-教材67页。dsegsegmentxdw1234H,5678Hydw2345H,6789Hzdw4637H,3765H定义数据段wdw3456H,?4567Hdsegends(5)习题:3.37-教材114页。MOVAL,STATUSANDAL,00010101B;只保留第1、3、5位CMPAL,00010101BJZROUTINE_1;3位全为1转ROUTINE_1JZROUTINE_2;两位为1转ROUTINE_2JZROUTINE_3;1位为1转ROUTINE_3JZROUTINE_4;3位全为0
7、转ROUTINE_4ROUTINE_3:JMPEXITROUTINE_1:JMPEXITROUTINE_2:JMPEXITROUTINE_4:EXIT:INT21H五【实验步骤】六【实验过程原始记录(数据、图表、计算等)】如果有则写。七【实验结果及分析】1:放32位的数,一般用ax,dx;转存时也可用cx,bx2:学会将asm文件转换为exe文件,知道了栈的使用,要注意出栈和入栈时sp值得变化,出栈sp+2,入栈sp-2.3:在编写完整汇编程序时,需要定义数据段,堆栈段和代码段。