微机原理上机实验报告1

时间:2024.4.29

201406

微机原理上机实验报告

实验一

         班级: 物联网1班

         姓名: 邓笑游

         学号: 01210261y11

         成绩:

实验1:8086的微处理器结构(现场)的认识实验

一、实验目的

1、建立自己的DOS平台

2、通过DEBUG工具了解8086的工作现场

3、了解DEBUG工具的A、U、R和T命令

二、预习要点

1、8086的数据现场(CPU的寄存器和存储器的段结构)。

2、8086的寄存器类型、名称和作用。

3、debug工具的作用和特点

三、实验项目

在DOS下利用Debug调试工具完成1+2=3的程序调试

四、实验设备环境

PC机1台,DOS操作系统,Debug调试工具

五、实验方法

在DOS下利用Debug调试工具的R命令查看8086微处理器的现场(数据结构)。

六、实验要求

1、写出R命令的功能。

2、写出8086的当前现场的所有数据部件(寄存器)的名称及作用。

实验1

1.装入本实验程序的本机截图

2.进入DEBUG(直接在桌面打开)

3.执行A命令输入1+2=3的程序

 

4.用U命令查看程序的形态

 

5.用R命令查看当前指令的现场

 

6.执行一条指令,说明指令的现场和指令的功能(本指令改变了那些现场的内

7.执行第二条指令,说明指令的现场及结果的值。

8.实验感受


第二篇:微机原理实验报告_1


《微机原理与接口技术》

实验报告

 

实验名称:     指令与汇编基础   

学    院:    信息科学技术学院  

专    业:      电子信息工程    

班    级:    20##级理科实验班 

学    号:     20091613310032   

姓    名:        姬晓鹏        

20##年11月17日

一、实验目的

1.了解命令行操作的基本方式和基本命令,掌握PC环境下命令行方式的特点;

2.掌握汇编语言程序指令编辑、宏汇编、连接、运行基本概念;

3.学会利用DEBUG检查认识指令功能的正确方法。

二、实验内容

1.汇编语言汇编、链接、运行、调试:

(1)所需文件:Masm.exe、link.exe,另外WindowsXP自身有的edit.com 和debug.exe(C:\windews\system32)。

(2)建立asm程序.

   asm程序可以使用记事本编辑,然后保存为*.asm文件,或者使用edit程序创建。

题目:请把40个字母a的字符串从原缓冲区传送到目的缓冲区。程序如下:

;************************************************************

data segment

source_buffer             db  40 dup('a')

data ends

;************************************************************

extra          segment

dest_buffer               db         40 dup (?)

extra          ends

;************************************************************

code segment

main  proc   far               

             assume  cs:code, ds:data, es:extra

start:          push           ds

              sub            ax,ax

              push           ax

              mov      ax,data

              mov      ds,ax

              mov     ax,extra

              mov     es,ax

lea  si,source_buffer

              lea  di,dest_buffer

              cld

              mov   cx,40

              rep    movsb

              ret

  main       endp

  code       ends

  end  start

;************************************************************

(3)进行汇编:切换cmd到*.asm所在的文件目录下,运行 masm *.asm,再回车,出现如下界面。

(4)用link程序产生exe文件。

(5)程序的运行:

在cmd窗口中输入:test.exe运行程序,由于没有显示程序结果,需要进一步的调试。

(6) 调试:

在cmd窗口中输入:debug test.exe(需要加*.exe后缀名)然后使用反汇编命令u,得到结果如下图所示:

从上图中可以看到程序的偏移量为1c,运行g命令:-g=0 1c可以看每个寄存器的值。

可以使用D命令分别查看数据段和附加段的有关区域,如查看数据段:-d ds:0,查看附加段:-d es:0

从上图的结果可以发现,40个“a”已从数据段传送到附加段。

三、问题与思考

1.      进行实验时遇到什么问题,如何解决?

(1)   使用debug test命令时,提示“File no found”。

解决方法:debug调试程序时,需要加文件的后缀名*.exe,否则提示找不到文件,而masm和link后的文件可以加后缀名,也可以不加。

(2)   替换movsb、rep指令时,使用的程序如下:

again:   mov  al,[si]

        mov [di],al           

        add  si,1

        add  di,1

        dec   cx

            jnz  again

使用debug查看附加段有关区域,发现数据从数据段无法传送到附加段。

解决方法:将mov [di],al指令修改为mov es:[di],al,重新调试程序,发现数据可以从数据段传送到附加段,可见es在此处是指明地址。

2.用普通指令替换movsb、rep进行程序编写和运行。

查询资料可知:movsb的英文是move string byte,意思是搬移一个字节,它是把 di:si 所指地址的一个字节搬移到 es:di所指的地址上,搬移后原来的内容不变,但是原来es:di所指的内容会被覆盖而且在搬移之后si和di会自动地址向下一个要搬移的地址。

可以将原指令更改为:

again:   mov  al,[si]

        mov es:[di],al           

        add  si,1

        add  di,1

        dec   cx

        jnz  again

        程序是将si赋给di,然后di和si分别加1,cx减1,比较cx不等于0时,回到again再次执行。

另外一种替换方法为:

again:   mov  al,[si]

        mov es:[di],al           

        inc  si

        inc  di

        dec   cx

        jnz  again

inc是汇编语言中算术运算类指令,起到加1的功能。

运用movs指令可以精简上述代码:

again:    movs  byte ptr[di],[si]

         dec   cx

         jnz   again

       mov指令为双操作数指令,两个操作数中不能全为内存操作数。movs( move string) 是串传送指令,执行操作:[di] = [si] ,将位于ds段的由si所指出的存储单元的字节或字传送到位于es段的由di 所指出的存储单元,再修改si和di,从而指向下一个元素。在执行该指令之前,必须预置si和di的初值,用std或cld设置df值。

       经过反复调试,将上述指令中movs  byte ptr[di],[si] 修改为movs  dest_buffer,source_ buffer,40个“a”也可以从数据段传送到附加段

2.      写出常用调试指令:单步运行、显示寄存器、修改寄存器指令。

单步运行:-t

显示寄存器:-r

修改寄存器:-r [寄存器名] (回车):[修改值]

更多相关推荐:
微机原理上机实验报告4

20xx06微机原理上机实验报告班级姓名学号成绩实验四物联网1班邓笑游01210261y11实验4综合程序设计一实验目的1上机解决试题的方法2综合程序设计的调试方法二预习要点1将习题变成程序的方法2综合程序的设...

微机原理及应用-汇编语言上机实验报告

西南石油大学实验报告实验一一实验目的熟悉汇编语言的上机过程掌握各项工具软件的使用方法二实验内容1硬件PC微机2软件DOS系统EDITEXEMASMEXELINKEXEDEBUGEXE三实验过程1前期准备在开始进...

答案版_微机原理实验报告

微机原理及接口技术实验报告20xx20xx学年第一学期班级姓名学号指导教师实验一Emu8086软件的使用一实验目的1熟悉汇编语言开发环境2掌握Emu8086软件使用方法3理解寻址方式的意义二实验环境1硬件环境微...

微机原理实验报告

微机原理实验报告实验一两个多位十进制数相加的实验一实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程二实验内容将两个多位十进制数相加要求被加数和加数均以ASCII码形...

微机原理上机实验报告2

20xx06微机原理上机实验报告班级物联网姓名学号成绩实验二1班邓笑游01210261y111实验2汇编语言上机的一般过程实验一实验目的1了解汇编源程序的结构2了解基本伪指令的作用3掌握MASM的作用和使用方法...

微机原理及应用实验报告

实验报告课程名称实验日期学生专业学生学号学生姓名教师姓名成绩南京理工大学机械工程学院实验一DEBUG命令及其操作一实验目的1熟练掌握debug的常用命令学会用debug来调试程序2深入了解数据在存储器中的存取方...

北理(bit)微机原理上机软件实验报告

微机原理软件编程实验报告班级:学号:姓名:一、实验题目1、IDE86集成开发环境的学习和运用2、编写程序求出10个数中的最大值和最小值,并以单步形式观察如何求出最大值、最小值。3、求1到100的累加和,并用十进…

32位微机原理上机实验报告:数据传送实验

西北工业大学明德学院实验报告实验项目微机原理及应用班级121204姓名田家豪王辰硕学号121566121567指导老师伍明高时间20xx47实验题目数据传送实验实验目的1熟悉Tdpit集成环境和调试器的使用2掌...

32位微机原理上机实验报告:显示输出实验

西北工业大学明德学院实验报告实验项目微机原理及应用班级121204姓名田家豪王辰硕学号121566121567指导老师伍明高时间20xx317实验题目1显示班级符号输出2显示学号符号输出3显示姓名符号输出4显示...

微机原理-循环设计实验报告

一实验目的1掌握循环程序的设计方法2掌握比较指令转移指令和循环指令的使用方法3进一步掌握调试工具的使用方法二实验预习要求1复习比较指令条件转移指令和循环指令2复习循环程序的结构循环控制方法等知识3读懂实验内容中...

20xx年微机原理课程上机实验指导书

第一部分汇编语言程序设计实验实验一汇编语言编程基础汇编语言是一种面向机器的低级语言,是计算机能够提供给用户的最快而最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。要真正理解计算机的工作过…

微机原理及应用实验报告(中南大学20xx年)

微机原理及应用实验报告班级姓名学号中南大学机电工程学院精密测控实验室实验一单片机仿真开发机操作和MCS51指令系统应用一实验目的1熟悉MCS51单片机仿真开发机和开发调试软件的操作使用和调整2学会编写和输入汇编...

微机原理上机实验报告(39篇)