最新文章专题视频专题问答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-23 12:49:57
文档

汇编语言实验报告

汇编语言程序设计实验报告学院:计算机科学与技术专业:计算机科学与技术指导教师:**班级:**学号:**姓名: **实验一集成环境及调试工具一、实验题目认识Tddebug集成操作软件二、分析设计思想,绘制实验原理图、流程图(一)、汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。1、源程序的编辑E:>EDITTEST.ASM编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。2、源程序的编译E:>TASMTEST.ASM编译也称为汇编,就是利
推荐度:
导读汇编语言程序设计实验报告学院:计算机科学与技术专业:计算机科学与技术指导教师:**班级:**学号:**姓名: **实验一集成环境及调试工具一、实验题目认识Tddebug集成操作软件二、分析设计思想,绘制实验原理图、流程图(一)、汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。1、源程序的编辑E:>EDITTEST.ASM编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。2、源程序的编译E:>TASMTEST.ASM编译也称为汇编,就是利
汇编语言程序设计实验报告

学   院:计算机科学与技术

专   业:计算机科学与技术

指导教师:    **    

班    级:   **   

学    号:   **   

姓    名:    **   

实验一   集成环境及调试工具

一、实验题目

认识Tddebug集成操作软件

二、分析设计思想,绘制实验原理图、流程图

(一)、汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。

1、源程序的编辑

E: > EDIT  TEST.ASM

编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。

2、源程序的编译

    E:>TASM  TEST.ASM

编译也称为汇编,就是利用汇编器(如TASM或MASM)对源程序进行编译,生成扩展名为OBJ的目标文件。在编译过程中,检查语法错误,若有错,则不生成目标代码文件,并给出错误信息。根据错误信息应返回到编辑状态,修改源程序。

3、目标程序的链接

    E:> TLINK  TEST.OBJ

    链接过程是利用链接程序(如TLINK或LINK)将用户目标程序和库文件链接、定位,生成扩展名为EXE的可执行文件。链接时,如果链接文件找不到所需要的链接信息,则发出错误信息,不生成可执行文件。

4、调试可执行程序

    E:>TD  TEST.EXE

    如果生成的EXE文件运行后,并没有按照设计意图运行,就需要对程序进行调试,找出错误。再对源程序进行修改,即重复进行编辑、编译、链接、调试,直到生成完全正确的可执行文件为止。

(二)、Tddebug集成操作软件使用说明

1.该软件是集编辑(Edit.exe)、编译(Tasm.exe)、连接(Link.exe)和调试(TD.exe)等多个功能于一体,可在DOS环境下运行,为用户提供了一个学习微机原理的实验平台。

2.启动Tddebug                D:\wjyl> Tddebug

若启动成功,进入主界面。

3.Tddebug的菜单结构

主菜单         子菜单            菜单说明

Edit                              编辑源文件(.asm)

Compile  ——   Compile          编译源文件(.asm)

         ——   Link             连接目标文件(.obj)

         ——   Build All          编译和连接

Pmrun                            进入保护模式调试状态

Rmrun   ——   Run              运行实模式程序(.exe)

     ——  Debug            进入实模式调试状态(.exe)

Help                             版本信息

Quit               退出Tddebug

4.菜单选择

(1)快捷键选择主菜单:ALT+热键(E,C,P,R,H,Q)

(2)按左右键或直接使用快捷键在主菜单之间切换。使用上下键可选择子菜单中的菜单项。

5.执行菜单项

选中要执行的菜单项,键入Enter键,系统弹出对话框,输入需操作的文件名,以Enter键结尾,取消操作按Esc键。

6.实模式调试窗口说明

(1)键入Alt+R选择Rmrun主菜单的Debug子菜单弹出实模式调试窗口。 此时可能会叠加一个报告无符号表的对话框,按Esc键关闭该对话框。

(2)该窗口实际是Turbo Debugger调试器窗口,简称TD。其窗口的划分如图1-1所示。

主菜单条
代码显示调试区寄存器显示调试区标志寄存器显示调试区
内存数据显示调试区堆栈显示调试区
快捷键操作提示区
图1-1 Turbo Debugger调试窗口划分图

(3)主菜单中包含了File、Edit、View、Run、Breakpoints、Data、Options、Windows和Help共9个菜单项。可使用热键选择相应的菜单。在调试程序或操作调试器中会使用一些快捷键来实现一些功能,下面将列出常用功能的快捷键及实现功能。

(三)、实验步骤

7.运行Tddebug软件,选择Edit菜单编写实验程序

8.使用Compile菜单中的Compile和Link对实验程序进行汇编、连接,生成执行文件。

9.使用Rmrun菜单中的Run运行程序,观察运行结果。

10.使用Rmrun菜单中的Debug调试程序,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各寄存器及数据区的内容。过程如下:

1)按F7单步执行,在代码区中有一个三角,表示正在执行的指令。每一条指令的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口看结果。

2)检查内存数据区的内容,关键是找出用户程序的数据段和附加段:

●方法1:在CPU窗口按Tab键使内存数据显示区成为活动区,按Ctrl+G键,输入:“DS或ES寄存器的值:偏移地址”,即可显示用户指定的数据区

●方法2:选择菜单View| Dump,弹出内存数据显示窗口。

3)   查看执行结果:按Alt+F5,切换到用户窗口。

11.更改数据区中的数据,考察、调试程序的正确性

三、程序清单及相关注释

;数据传送实验,采用相对寻址方式

DDATA    SEGMENT                  ;定义源数据段

MSR    DB "HELLO,WORLD!$"

LEN    EQU $- MSR

DDATA    ENDS

EXDA       SEGMENT                 ;定义附加数据段

MSD    DB  LEN DUP(?)

EXDA       ENDS

MYSTACK   SEGMENT STACK          ;定义堆栈段

DW 20 DUP(?)

MYSTACK       ENDS

CODE       SEGMENT                 ;定义代码段

ASSUME CS:CODE,DS:DDATA,ES:EXDA

START:    MOV AX,DDATA

    MOV     DS,AX                ;装载数据段寄存器

    MOV     AX,EXDA

        MOV     ES,AX                  ;装载附加数据段寄存器

        MOV    SI,OFFSET MSR

        MOV     DI,OFFSET MSD

    MOV     CX,LEN

        MOV    BX,0

NEXT:  MOV     AL,MSR[BX]     ;开始传输数据

    MOV     ES:MSD[BX],AL

        INC        BX

        LOOP     NEXT

        PUSH     ES

POP     DS                     ;将附加段寄存器指向的段值赋给数据段寄存器

    MOV     DX,OFFSET MSD

        MOV     AH,9 

    INT     21H                  ;显示字符串

        MOV     AX,4C00H

    INT     21H                  ;返回DOS状态

CODE     ENDS 

    END  START

四、分析实验结果

五、心得体会

第一次接触实际的汇编语言程序环境,熟悉了相应的操作,课本上的知识也得以应用,但是好像课程与实验有些脱节,所以需要更多的自学。

实验二    I/O程序设计

一、实验题目

1.【示例】:将指定数据区中一个字节的数据以十六进制数形式显示在屏幕上。

2.编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。

设计思路:在第一题MOV    SI,OFFSET SD之后增加如下代码段

MOV       AH,  01H  ;键盘输入并回显

    INT       21H

    MOV    DS:[SI],AL ;将AL中键入的ASCII码存入数据段

    MOV   AH,  02H  ;输出回车换行符

      MOV   DL,  0AH

      INT     21H

二、分析设计思想,绘制实验原理图、流程图

设计思路:首先将该数以十六进制数形式分解,然后将每一位分别转换为ASCII码送屏幕显示。其中0H~9H之间的数加30H,即可得0H~9H的ASCII码,而AH~FH的ASCII码,则需再加7H,参见表5-1。参考程序流程如图2-1所示。

三、程序清单及相关注释

;1.显示a的HEX

DATA    SEGMENT    USE16

MES    DB    'Show a as hex:',0AH,0DH,'$'

SD     DB    'a'

DATA    ENDS

CODE    SEGMENT    USE16

    ASSUME    CS:CODE,DS:DATA

START:    MOV AX,DATA

    MOV        DS,AX

              MOV       DX,OFFSET MES           ;显示提示信息

    MOV        AH,09H        

              INT       21H

    MOV        SI,OFFSET SD

    MOV        AL,DS:[SI]

    AND        AL,0F0H        ;取高4位

    SHR        AL,4

    CMP        AL,0AH    ;是否是A以上的数

    JB        C2        

    ADD        AL,07H        

         C2:  ADD       AL,30H

              MOV       DL,AL       ;显示字符

    MOV        AH,02H

    INT        21H

    MOV        AL,DS:[SI]

              AND       AL,0FH      ;取低4位

    CMP        AL,0AH

    JB        C3

    ADD     AL,07H

C3:    ADD    AL,30H

    MOV        DL,AL            ;显示字符 

    MOV        AH,02H

    INT        21H

    MOV        AX,4C00H        ;返回DOS

    INT        21H

CODE    ENDS

              END       START

      START

;2.显示输入字符的HEX

        DATA  SEGMENT   USE16

         MSG  DB        'Input a char: $'

         MES  DB        0AH,0DH,'Show a as hex:',0AH,0DH,'$'

          SD  DB        'a'

        DATA  ENDS

        CODE  SEGMENT   USE16

              ASSUME    CS:CODE,DS:DATA

      START:  MOV       AX,DATA

              MOV       DS,AX

              MOV       DX,OFFSET MSG           ;显示提示信息

              MOV       AH,09H

              INT       21H

              MOV       AH,01H

              INT       21H

              MOV       SI,OFFSET MES

              MOV       [SI+5],AL

              MOV       [SD],AL

              

              MOV       DX,OFFSET MES           ;显示提示信息

              MOV       AH,09H

              INT       21H

              MOV       SI,OFFSET SD

              MOV       AL,DS:[SI]

              AND       AL,0F0H     ;取高4位

              SHR       AL,4

              CMP       AL,0AH      ;是否是A以上的数

              JB        C2

              ADD       AL,07H

         C2:  ADD       AL,30H

              MOV       DL,AL       ;显示字符

              MOV       AH,02H

              INT       21H

              MOV       AL,DS:[SI]

              AND       AL,0FH      ;取低4位

              CMP       AL,0AH

              JB        C3

              ADD       AL,07H

         C3:  ADD       AL,30H

              MOV       DL,AL       ;显示字符

              MOV       AH,02H

              INT       21H

              MOV       AX,4C00H    ;返回DOS

              INT       21H

        CODE  ENDS

              END       START

      START

四、分析实验结果

1、【示例】:

 

2、输入字符“,”的结果是:

 

五、心得体会

在第一次实验的基础上,对汇编语言编写程序有了一定的认识和基础,在完成第一道实验题之后,第二题通过自己查阅书籍以及老师的耐性指导,终于完成了,颇有小成就感。

实验三  代码转换程序设计

一、实验题目

2.编写程序将内存中一个字的数转换为十进制数的数字串显示。

二、分析设计思想,绘制实验原理图、流程图

设计思想:五位十进制数可表示为

因此,将十六位二进制数转换为5位ASCII码表示的十进制数数字串,即采用除10取余方法,分别求,并将它们转换为ASCII码。以字符串方式显示在屏幕上

三、程序清单及相关注释

DDATA    SEGMENT

MES    DB    '十进制: $'

BUF    DW    1234   

    DB 5 dup (0)

DDATA    ENDS

CODE SEGMENT

    ASSUME CS:CODE,DS:DDATA

START:MOV    AX,DDATA

     MOV        DS,AX

     MOV     SI,OFFSET BUF 

     MOV    AX,DS:[SI]     

        MOV        BL,0AH      ;送被除数

        ADD    SI,7   ;SI指向存储位置末尾

        MOV    CX,5

 A:  DEC    SI        ;SI=SI-1

     DIV    BL    ;被除数在AX中,除数在BL中,结果的商在AL中,余数在AH中

        ADD    AH,30H

        MOV    DS:[SI],AH

        MOV    AH,0   ;清零余数,是AX参与下次运算

        CMP    AL,0

        LOOPNZ    A

  

     MOV    DX,OFFSET MES  ;显示提示信息

     MOV        AH,09H

     INT        21H

     MOV    CX,5

     MOV     SI,OFFSET BUF

     ADD     SI,2

B:  MOV     DL,DS:[SI]    ; 显示十进制字符串    

    MOV     AH,02H

    INT     21H

    INC        SI

    LOOP B

      

    MOV        AH,4CH    ;返回DOS

    INT        21H

CODE    ENDS

    END      START        

四、分析实验结果

1. 内存中一个字的数转换为十进制数的数字串

五、心得体会

这一次的实验,运用了更多的指令算法,课程脱节的问题也更明显地暴露出来,没有抓住核心的我走了不少弯路,但是只要用心,又有老师指导,还是能够出色地完成本次实验,并且先于理论课程学到了更新的知识。

实验四  分支程序设计

一、实验题目

4.从键盘输入一个字符,判断该字符是小写字母、大写字母、数字或其他字符,并给出相应的提示。

二、分析设计思想,绘制实验原理图、流程图

三、程序清单及相关注释

        DATA  SEGMENT

        MSG1  DB        ' is a number! $ '

        MSG2  DB        ' is the upper case of an english char! $ '

        MSG3  DB        ' is the lower of an english char! $ '

        MSG4  DB        ' is an another char$ '

        DATA  ENDS

        

        CODE  SEGMENT   USE16

              ASSUME    CS:CODE,   DS:DATA

      START:

              MOV       AX ,   DATA

              MOV       DS,   AX

              

              MOV       AH,  01H

              INT       21H

              CALL      JUDGE

              ;显示 

              MOV       AH,  9

              INT       21H

              MOV       AH,4CH

              INT       21H

               ;子程序 

              JUDGE     PROC

              MOV       DX,OFFSET MSG4

              CMP       AL,'0'

              JB        RETURN

              CMP       AL,'9'

              JA        NOTNUMBER

              MOV       DX,OFFSET MSG1

              RET

  NOTNUMBER:

              CMP       AL,'A'

              JB        RETURN

              CMP       AL,'Z'

              JA        NOTUPPER

              MOV       DX,OFFSET MSG2

              RET

   NOTUPPER:

              CMP       AL,'a'

              JB        RETURN

              CMP       AL,'z'

              JA        RETURN

              MOV       DX,OFFSET MSG3

     RETURN:

              RET

              JUDGE     ENDP

           

        CODE  ENDS

              END       START 

四、分析实验结果

 

五、心得体会

转眼就到了最后一次实验了,本次汇编语言的实验系列自己收获很多,哪怕理论课程没有学的扎实,通过实际的实验操作也让自己更牢固地掌握了相关知识。

文档

汇编语言实验报告

汇编语言程序设计实验报告学院:计算机科学与技术专业:计算机科学与技术指导教师:**班级:**学号:**姓名: **实验一集成环境及调试工具一、实验题目认识Tddebug集成操作软件二、分析设计思想,绘制实验原理图、流程图(一)、汇编语言程序的开发过程如图1.1所示,这个过程主要有编辑、编译、链接几个步骤构成。1、源程序的编辑E:>EDITTEST.ASM编辑过程就是将源程序输入内存,生成一个扩展名为ASM的文本文件并存入硬盘。2、源程序的编译E:>TASMTEST.ASM编译也称为汇编,就是利
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top