汇编语言综合实验

华北科技学院综合性

实 验 报 告

课程名称        汇 编 语 言                   

实验学期   2014     2015   学年 第学期

学生所在系部  计算机学院网络工程系           

年级   三年级        专业班级    网络B12-1    

学生姓名     朱生军     学号   201207024106   

任课教师             李冬艳                   

实验成绩                                       

计算机学院制


《  汇 编 语 言》课程综合性实验报告

开课实验室:基础一                           20##-12-08

 

第二篇:汇编语言实验一

  南昌大学实验报告

学生姓名:    学号:    专业班级:电气电气信息类Ⅲ073

实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 20##-11-03  实验成绩:     一.实验目的

熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。了解汇编语言程序的汇编、运行环境。

二.实验内容

1.掌握常用的编辑工具软件(如WORD、EDIT)、MASM和LINK的使用;

2.伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP;

3.利用的INT 21H的1号功能实现键盘输入的方法;

三.实验要求

1.仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的内容;

2.了解利用的INT 21H的1号功能实现键盘输入的方法,了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法;

3.阅读下面程序段。

四.实验环境

PC微机

DOS操作系统或 Windows 操作系统

MASM。EXE,LINK。EXE,DEBUG。COM或宏汇编集成环境

五.实验步骤

程序

data      segment

message              db 'This is a sample program of keyboard and disply'

db          0dh,0ah,'Please strike the key!',0dh,0ah,'$'

data      ends

stack    segment     para stack 'stack'

db          50 dup(?)

stack    ends

code      segment

assume cs:code,ds:data,ss:stack

start: mov       ax,data

mov       ds,ax

mov       dx,offset message

mov       ah,9

int         21h

again: mov       ah,1

int         21h

cmp        al,1bh

je           exit

cmp        al,61h

jc           nd

cmp        al,7ah

ja           nd

and        al,11011111b

nd:       mov       dl,al

mov       ah,2

int         21h

jmp         again

exit:    mov       ah,4ch

int         21h

code      ends

end        start

DEBUG 调试

例题:

DATAS SEGMENT

  X dw 5

  Y dw 6

  Z  dw 7

  W dw ?

;此处输入数据段代码 

DATAS ENDS

STACKS SEGMENT

    ;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

    ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

   

    push ds

    xor  ax,ax

        push ax

        mov ax,datas

     mov ds,ax

        mov ax,X

        add ax,Y

        add ax,Z

        mov  W,ax

        ret

     ;此处输入代码段代码

    MOV AH,4CH

    INT 21H

CODES ENDS

END START

程序目的:实现X+Y+Z赋值给W

DEBUG调试:

实验步骤

1.用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。

2.用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。

3.用TYPE命令显示1产生的.LST文件。

显示的内容:

Microsoft (R) Macro Assembler Version 5.00                  11/9/8                                                             Page     1-1

       1 0000                         DATA    SEGMENT

       2 0000  54 48 49 53 20 49 53     MESSAGE    DB  'THIS IS A SAMPLE PROGR

                                 AM OF KEYBOARD AND DISPLY'

       3       20 41 20 53 41 4D 50   

       4       4C 45 20 50 52 4F 47  

       5       52 41 4D 20 4F 46 20  

       6       4B 45 59 42 4F 41 52  

       7       44 20 41 4E 44 20 44   

       8       49 53 50 4C 59            

       9 002F  0D 0A 50 4C 45 41 53  DB  0DH,0AH,'PLEASE STRIKE THE KEY!

                                 ',0DH,0AH,'$'

      10       45 20 53 54 52 49 4B   

      11       45 20 54 48 45 20 4B   

      12       45 59 21 0D 0A 24

      13 004A                        DATA    ENDS

      14 0000                         STACK  SEGMENT    PARA STACK 'STACK'

      15 0000  0032[                    DB  50 DUP(?)

      16         ??                 

      17                   ]   

      18                         

      19 0032                         STACK  ENDS

      20 0000                         CODE    SEGMENT

      21                          ASSUME       CS:CODE,DS:DATA,SS:STACK

      22 0000  B8 ---- R        START: MOV      AX,DATA

      23 0003  8E D8                   MOV      DS,AX

      24 0005  BA 0000 R            MOV      DX,OFFSET MESSAGE

      25 0008  B4 09                    MOV      AH,9

      26 000A  CD 21                  INT 21H

      27 000C  B4 01                   AGAIN: MOV      AH,1

      28 000E  CD 21                   INT 21H

      29 0010  3C 1B                   CMP      AL,1BH

      30 0012  74 12                     JE   EXIT

      31 0014  3C 61                    CMP      AL,61H

      32 0016  72 06                     JC   ND

      33 0018  3C 7A                   CMP      AL,7AH

      34 001A  77 02                    JA   ND

      35 001C  24 DF                   AND       AL,11011111B

      36 001E  8A D0                   ND: MOV      DL,AL

      37 0020  B4 02                    MOV      AH,2

      38 0022  CD 21                   INT 21H

      39 0024  EB E6                   JMP       AGAIN

      40 0026  B4 4C                   EXIT:     MOV      AH,4CH

      41 0028  CD 21                   INT 21H

      42 002A                        CODE    ENDS

      43                          END       START


Microsoft (R) Macro Assembler Version 5.00                  11/9/8                                                             Symbols-1

Segments and Groups:

                N a m e             Length      Align Combine Class

CODE . . . . . . . . . . . . . .        002A      PARA    NONE   

DATA . . . . . . . . . . . . . .        004A      PARA    NONE   

STACK  . . . . . . . . . . . . .     0032       PARA    STACK  'STACK'

Symbols:           

                N a m e             Type     Value Attr

AGAIN  . . . . . . . . . . . . .      L NEAR 000C      CODE

EXIT . . . . . . . . . . . . . .  L NEAR 0026       CODE

MESSAGE  . . . . . . . . . . . .         L BYTE  0000       DATA

ND . . . . . . . . . . . . . . .    L NEAR 001E       CODE

START  . . . . . . . . . . . . .      L NEAR 0000       CODE

@FILENAME  . . . . . . . . . . .      TEXT  2             

     31 Source  Lines

     31 Total   Lines

     10 Symbols

  49850 + 451686 Bytes symbol space free

      0 Warning Errors

      0 Severe  Errors

4.用LINK将.OBJ文件连接成可执行的.EXE文件。

5.在DOS状态下运行LINK产生的.EXE文件。即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个相同的字符,但小写字母被改成大写。按ESC键可返回DOS。若未出现预期结果,用DEBUG检查程序。

.实验总结

在编程中要注意变量名的使用,以及在使用双操作数指令的时候,特别是有寄存器间接寻址的时候,要注意目的操作数和源操作数的类型要匹配。

在使用相对变址寻址的时候要小心。

第一次编程出现的错误较多。但是在熟悉编程软件后,发现容易犯的还是低级错误。在编程过程中,细心还是很需要的。

相关推荐