(微机原理实验报告).

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验报告课程名称微机原理与接口(技术)专业通信工程班级通信1301B学号1334140157学生姓名刘欢黄淮学院信息工程学院实验报告一实验名称调试程序DEBUG及8086指令使用实验时间20150109学生学号1334140157学生姓名刘欢同组人员专业班级通信1301B实验类型演示性指导老师禹定臣实验地点1号楼614学时21、实验目的通过实验掌握下列知识:1)8086指令:MOV,ADD,ADC,SUB,SBB,DAA,XCHG2)DEBUG命令:A,D,E,G,Q,R,T,U,F,H。3)BCD码,ASCII码及用16进制数表示二进制码的方法。4)8086寄存器:AX,BX,CX,DX,F,IP。2、实验预备知识1)熟悉DEBUG命令的使用2)8086、8088常用指令的练习。3、实验内容和步骤一、DEBUG命令使用:1、打DEBUG进入DEBUG控制,显示提示苻'_'。2、用命令F10010F'A'将'A'的ASCII码填入内存。3、用命令D10010F观察内存中的16进制码及屏幕右边的ASCII字符。4、用命令F11011F41重复上二项实验,观察结果并比较。经过比较结果一样。5、用命令E100303132……3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的16进制数是什么字符的ASCII码?6、用H命令检查下列各组16进制数加减结果并和你的手算结果比较:(1)34H,22H(2)56H,78H(3)A5,79H(4)1284H,5678H(5)A758,347FH经过比较与手算结果相同。7、用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。8、用R命令将AX,BX内容改写为1050H及23A8H。二、8086/8088常用指令练习1、传送指令2、加减法指令:3、带进位加减法:4、BCD码加减通过8086的单步运行,可以清楚的了解每条指令的运行结果。4、实验电路、程序清单本实验为DEBUG的调用,无程序和电路。5、实验结果6、实验中遇到的问题上实验课不是太懂通过老师讲解懂了一些指导教师批阅成绩指导教师签字:年月日实验报告二实验名称内存操作数及寻址方法实验时间20150313学生学号1334140157学生姓名刘欢同组人员专业班级通信1301B实验类型验证性指导老师禹定臣实验地点1号楼614学时21、实验目的通过实验掌握下列知识:1)8086/8088系统中数据在内存中的存放方式和内存操作数的几种寻址方式。2)8086/8088指令:MOV,INC,DEC,LOOP,INT3,INT20H,寄存器BX,BP,SI,DI。3)8086/8088汇编语言伪操作:BYTEPTR,WORDPTR。4)求累加和程序和多字节加减法程序。2、实验预备知识1)了解和掌握有哪些寻址方式2)熟练各种寻址方式的方法。3、实验内容和步骤1)内存操作数及各种寻址方式使用:步骤:(也可用emu8086)1)用A命令键入上述程序,并用T命令逐条运行。2)每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。注意D命令显示结果中右边的ASCII字符及双字节数存放法。2)求累加和程序:步骤:1、DEBUG调试:1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。2)用E命令在内存地址2000H处键入16个数字3)用命令G=100J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值。4)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错。5)重复GJ与T,再检查AX是否正确。6)用G命令使程序运行到结束,检查AX值是否正确。2、用emu8086调试:给程序加上伪指令,观察运行结果。3)多字节加法程序。步骤:1)用命令键入此程序2)用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。3)用G命令运行此程序,并用D命令检查其结果(存放在哪里?),是否正确?4)自编程序:用16位减法指令编一个32位(4字节)数减法程序,两个源数及结果存放地址同上题。调试并做记录。4、实验电路、程序清单1)内存操作数及各种寻址方式的使用MOVAX,5678HMOV[2000H],AXMOVBX,2002HMOVBYTEPTR[BX],40HMOVDL,45HINCBXMOV[BX],DLDECDLMOVDI,3MOV[BX+DI],DLMOV[BX+DI+1],DLMOVWORDPTR[BX+DI+2],7846H2)求累加和程序程序:MOVBX,2000HMOVCX,10HSUBAX,AXLOP:ADDAL,[BX]ADCAH,0INCBXJ:LOOPLOPHLT3)多字节加法程序程序:MOVDI,1000HMOVCX,8MOVSI,2000HCLCLOP:MOVAL,[SI]ADC[DI],ALINCSIINCDILOOPLOPHLT5、实验结果6、实验中遇到的问题本次实验比第一次好多了但是还会遇到一些不会的通过老师和同学的帮助学会了指导教师批阅成绩指导教师签字:年月日实验报告三实验名称数据串传送及查表程序实验时间20150327学生学号1334140157学生姓名刘欢同组人员专业班级通信1301B实验类型综合性指导老师禹定臣实验地点1号楼614学时21、实验目的通过实验掌握下列知识:1)堆栈、堆栈指示器SP和堆栈操作指令PUSH、POP。2)段寄存器和物理地址计算。3)查表法和查表指令XLAT。4)数据串传送程序和数据串传送指令MOVS、STOS及重复前辍REP。5)循环指令ROL、逻辑与指令AND和清方向位指令CLD。6)伪操作指令DB。2、实验预备知识1)了解相应指令符的应用2)知道什么是入栈、出栈及相应操作3)知道段寄存器和物理地址的计算,了解查表法的程序格式4)知道字符串是如何传送的5)熟悉循环指令ROL逻辑与指令AND和清零指令CLD,以及伪指令的掌握。3、实验内容和步骤一、利用查表方法把DX的内容(16进制数)转换成ASCII码:二、数据串搬家程序:三、段寄存器概念及字符串传送指令练习:4、实验电路、程序清单1)利用查表法把DX的内容(16进制数)转换成ASCII码MOVBX,1000HMOVDI,2000HMOVCX,4LOP:PUSHCXMOVCL,4ROLDX,CLPOPCXMOVAL,DLANDAL,0FHXLATCLDSTOSBLOOPLOPINT20H2)数据串搬家程序MOVSI,1000HMOVDI,1500HMOVCX,0FHLOP:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPLOPINT20H3)段寄存器概念及字符串传送指令练习MOVSI,0MOVDI,0MOVAX,1000HMOVDS,AXMOVAX,1500HMOVES,AXMOVCX,0FHCLDREPMOVSBINT20H5、实验结果一二三6、6、实验中遇到的问题遇到了程序运行出错的问题,还有运行结果与实际不符的问题。指导教师批阅成绩指导教师签字:年月日实验报告四实验名称屏幕字符显示程序实验时间20150410学生学号1334140157学生姓名刘欢同组人员专业班级通信1301B实验类型综合性指导老师禹定臣实验地点1号楼614学时21、实验目的通过实验掌握下列知识:1、8086/8088指令:JMP,ROR,XOR,HLT。2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。3、直接向RAM(VRAM)送ASCII码进行屏幕显示的方法。4、IBM-PC机的ASCII码表及控制字符。5、命令(.COM)文件及使用方法。6、利用^Break退出程序的方法及局限性。2、实验预备知识1)利用INT2109H号功能调用显示字符串2)利用INT21H2号功能显示字符3)直接向VRAM送ASCII码显示字符4)自己编写一个程序要求在AX中显示内容,即显示AX=xxx.3、实验内容和步骤一、利用INT2109H号功能调用显示字符串。二、利用INT21H2号功能显示字符:三、直接向VRAM送ASCII码显示字符四。自编一个程序,要求显示AX的内容,即能显示AX=xxxx。4、实验电路、程序清单第一个实验程序清单MOVAH,9MOVDX,110INT21HINT20HDB'Thisisasample!$'第二个程序清单:XORDL,DLMOVCX,100HLOP:MOVAH,2HINT21HINCDLLOOPLOPINT20H第三个程序清单:DATASEGMENTBUFFDB'0123456789ABCDEF'BUFF1DB'AX='BUFF2DB4DUP(?)BUFF3DB'H$'DATAENDSESSSEGMENTESSENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:ESSSATRT:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,78EFHMOVBX,OFFSETBUFFMOVDI,OFFSETBUFF2MOVCX,4LOP:PUSHCXMOVCL,4ROLAX,CLPOPCXPUSHAXANDAL,0FHXLATCLDSTOSBPOPAXLOOPLOPMOVDX,OFFSETBUFF1MOVAH,09HINT21HINT20HCODEENDSENDST第四个程序:DATASEGMENTSTRINGDB'WANGYONGCUN$'DATAENDSSTACK1SEGMENTPARASTACKDW30DUP(0)STACK1ENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETSTRINGMOVAH,09INT21HCODEENDSENDSTART5、实验结果第一个程序运行结果:第二个程序运行结果:第三个程序运行结果:第四个程序运行结果6、实验中遇到的问题在这次屏幕字符显示程序中实验中,遇到了程序运行出错的问题,还有运行结果与实际不符的问题,这些问题后来在老师和同学的帮助下得到了解决。指导教师批阅成绩指导教师签字:年月日实验报告五实验名称二进制数显示成十六进制数的屏幕字符显示程序实验时间20150424学生学号1334140157学生姓名刘欢同组人员专业班级通信1301B实验类型综合性指导老师禹定臣实验地点1号楼614学时21、实验目的通过实验掌握下列知识:1)8086/8088指令:MOV,XLAT,LEA,JNE,CALL,RET,PUSH,POP,CMP,INT。2)数据段的定义方法。3)XLAT指令的使用方法。4)子程序的嵌套调用及子程序参数传递的方法。5)利用DOS功能调用INT21H的4CH号功能返回DOS的方法。6)MASM、LINK、DEBUG、EMU8086等汇编、调试工具的使用方法。2、实验预备知识1)JG,SHR,MOV,OR,CMP,INC,LEA,INT等命令符的使用2)了解怎么利用DOS功能调用INT21H的9号功能进行屏幕显示的方法3、实验内容和步骤1.利用INT2109H号功能字显示字符串。1、字符串显示09H功能说明功能:在屏幕上显示在存储器内以“$”为结束符的字符串(“$”不显示)。入口参数:DS:DX=串首址。例4一个以“$”结束的字符串已存放在mess为首地址的内存缓冲区中,利用09号功能调用如下:movah,9movdx,segmess;ds:dx=串地址movds,dxmovdx,offsetmessint21h2、从mess开始处存放下列字符串的ASCII码:‘Thisisasample!$’写程序把它显示出来。3、把上面你写出的程序存为aa.com4、在DOS命令下打AA,运行此程序,即在屏幕上显示'Thisisasample!'字符串,若不出

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功