最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

微机实验二 熟悉汇编程序建立及其调试方法

来源:动视网 责编:小OO 时间:2025-09-26 00:25:33
文档

微机实验二 熟悉汇编程序建立及其调试方法

微机原理实验报告实验二熟悉汇编程序建立及其调试方法一、实验目的1.熟悉汇编语言源程序的框架结构,学会编制汇编程序。2.熟悉汇编语言上机操作的过程,学会汇编程序调试方法。二、实验内容1.学习编写汇编语言源程序的方法,了解数据存放格式。2.阅读给出的程序,找出程序中的错误。3.通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。三、修改后的程序STACKSGSEGMENTPARASTACK'STACK';定义堆栈段DB256DUP(?);堆栈段为256
推荐度:
导读微机原理实验报告实验二熟悉汇编程序建立及其调试方法一、实验目的1.熟悉汇编语言源程序的框架结构,学会编制汇编程序。2.熟悉汇编语言上机操作的过程,学会汇编程序调试方法。二、实验内容1.学习编写汇编语言源程序的方法,了解数据存放格式。2.阅读给出的程序,找出程序中的错误。3.通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。三、修改后的程序STACKSGSEGMENTPARASTACK'STACK';定义堆栈段DB256DUP(?);堆栈段为256
微机原理实验报告

实验二 熟悉汇编程序建立及其调试方法

一、实验目的

1.熟悉汇编语言源程序的框架结构,学会编制汇编程序。

2.熟悉汇编语言上机操作的过程,学会汇编程序调试方法。

二、实验内容

1.学习编写汇编语言源程序的方法,了解数据存放格式。

2.阅读给出的程序,找出程序中的错误。

3.通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。

三、修改后的程序

STACKSG  SEGMENT  PARA  STACK'STACK'  ;定义堆栈段 

         DB 256 DUP (?)  ;堆栈段为256个字节空间, 

STACKSG ENDS 

DATASG SEGMENT PARA 'DATA'  ;设置数据段 

BLOCK  DW 0,-5,8,256,-128,96,100,3,45,6,512;定义数据段有20个字的数据 

       DW 23, 56, 420, 75, 0,-1024,-67,39,-2000 

COUNT EQU 20 ;定义计数次数常量COUNT等于20 

MAX DW ? ;保留1个字空间,用以存放最大值结果 

DATASG ENDS 

CODESG SEGMENT ;代码段 

ASSUME SS : STACKSG, CS : CODESG  ;STACKSG为堆栈段CODESG为代码段

ASSUME DS : DATASG  ;DATASG为数据段 

       ORG 100H  ;指令语句的起始偏移量为100H

BEGIN: MOV AX, DATASG ;保存最大值结果 

      MOV  DS,AX      ;给段寄存器赋值 

      LEA  SI,BLOCK   ;将SI设为指向数据的指针 

      MOV CX,COUNT    ;设置循环次数,CX中装入计数初值 

      DEC CX ;CX循环次数减1 

      MOV AX,[SI]     ;从内存取数到AX

 CHKMAX:  ADD  SI,2   ;取完一次数据,地址偏移量加2 

          CMP  [SI],AX ;数据指针当前所指单元的值与 AX比较 

          JLE   NEXT   ;取其中较大者存于AX中 

          MOV  AX,[SI] 

NEXT:    LOOP  CHKMAX ;与数据段最后一个数据比较后跳出循环 

         MOV  MAX,AX  ;保存最大值到MAX 

         MOV  AH,4CH  ;退出程序 

         INT   21H 

CODESG  ENDS

         END  BEGIN

程序的功能:输入20个数,比较出数值最大的一个数。

四、实验步骤

1.建立汇编语言源程序,对所建立的汇编语言源程序进行编译、链接。

2.运行DEBUG调试程序,装入被调试程序,用U命令查看调入的程序,用R命令查看并记录当前寄存器内容。

3.用D命令查看并记录下内存中数据存放格式。

4.用T命令但不运行程序,观察个条指令执行结果,以及对寄存器、标志位、内存单元的影响,若查找出程序中的错误,用Q命令退出DEBUG环境修改汇编语言源程序,重复上述步骤,直至整个程序无误。

5.若将LEA SI,BLOCK语句换成LEA SI,BLOCK+2*COUNT-2,并将ADD SI,2语句改为SUB SI,2重新运行程序,观察程序运行结果。

6.若重新给出一组数据后运行程序应该如何操作。

答:在源程序上直接修改数据后进行编译、链接、再用DEBUG程序查错最后生成EXE文件。

MOV  DS,AX

7.若要求找出数据区中最小数,程序将如何修改,并上机调试。

应将JLE NEXT改为JGE NEXT

五、习题与思考

1.在装入被调试程序后,如何知道分配给该用户程序的数据段在内存中的位置?

答:在DEBUG调试环境中,通过输入-R指令即可知道数据段在内存中的位置。

2.数据区以什么形式存放用符号数的?

答:通过转换成补码的形式,来存放有符号数。

3.修改前、后程序在执行时有何区别(提示:观察数据指针的变化)

答:修改程序前:SI=0000到SI=0002到SI=0004再到SI=0006,是一个逐渐递增的过程。 而在将:LEA SI,BLOCK改成LEA SI,BLOCK+2*COUNT-2,并将ADD SI,2改为SUB SI,2后。SI=0000到SI=0026D到SI=0024再到SI=0022,是一个之间递减的过程

4.程序执行完毕,结果存放在何处?

答:结果放在内存数据段的变量MAX中(0770:0028)

5.总结一下CS,IP,SS,DS,ES被设置的区别?

答:CS、SS、DS、ES都是通过伪指令ASSUME来设置成与数据段建立联系。而IP则是通过伪指令ORG来进行设置的。

6.观察伪指令PARA和ORG的作用

答:PARA表示:本段从1节的边界开始(1节为16字节),即段的起始地址能被16整除(段起始地址的低四位为0)。

ORG表示:定义处于当前段的偏移地址。

文档

微机实验二 熟悉汇编程序建立及其调试方法

微机原理实验报告实验二熟悉汇编程序建立及其调试方法一、实验目的1.熟悉汇编语言源程序的框架结构,学会编制汇编程序。2.熟悉汇编语言上机操作的过程,学会汇编程序调试方法。二、实验内容1.学习编写汇编语言源程序的方法,了解数据存放格式。2.阅读给出的程序,找出程序中的错误。3.通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。三、修改后的程序STACKSGSEGMENTPARASTACK'STACK';定义堆栈段DB256DUP(?);堆栈段为256
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top