华北科技学院综合性
实 验 报 告
课程名称 汇 编 语 言
实验学期 2014 至 2015 学年 第 1 学期
学生所在系部 计算机学院网络工程系
年级 三年级 专业班级 网络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检查程序。
六.实验总结
在编程中要注意变量名的使用,以及在使用双操作数指令的时候,特别是有寄存器间接寻址的时候,要注意目的操作数和源操作数的类型要匹配。
在使用相对变址寻址的时候要小心。
第一次编程出现的错误较多。但是在熟悉编程软件后,发现容易犯的还是低级错误。在编程过程中,细心还是很需要的。
实验一汇编语言的源程序的输入一实验目的1通过实验了解和熟悉微机系统的配置2学习在DEBUG状态下输入汇编源程序的方法3初步掌握调试…
学生实验报告册20xx20xx学年第1学期实验名称汇编语言程序设计学院信息与电气工程学院班级09级计算机科学与技术2班学号1351…
汇编语言实验报告姓名专业软件工程班级093班学号099074235STARTMOVAXDATASMOVDSAXmovbxoffse…
HarbinInstituteofTechnologyatWeihai汇编语言实验报告实验一第一部分dubug用法一问题描述上机前…
福建农林大学金山学院课程名称姓名系专业年级学号指导教师职称程序设计类课程实验报告汇编语言庄建军信息与机电工程电子信息工程专业20x…
实验七分支程序实验目的1掌握利用间接转移指令JMPBX实现多岔分枝的方法2宏替换指令MACRO及ENDM3符号扩展指令CBW实验程…
一实验内容1DEBUG的启动及其基本命令的使用2内存操作数与寻址方式1利用DEBUG程序中的E命令将两个多字节数12345678H…
汇编语言程序设计实验报告学院计算机科学与技术专业计算机科学与技术指导教师班级学号姓名实验一集成环境及调试工具一实验题目认识Tdde…
IBMPC汇编语言程序设计实验报告四姓名周义学号12125800老师杨洪斌一实验目的学习用汇编语言设计与编写子程序二实验要求1要求…
计算机组成原理与汇编语言实验20xx指导教师签名一实验原理基本知识简单介绍算法流程计算机组成原理与汇编语言实验20xx计算机组成原…
实验一1熟悉汇编语言程序调试环境及顺序程序设计一实验目的及要求1学习及掌握汇编语言源程序的书写格式和要求明确程序中各段的功能和相互…