Skip Navigation Links.
Collapse 电工与电子技术 代码阅读实践
Collapse 电工与电子技术 计算机文化基础
Collapse 电工与电子技术 Visual Foxpro数据库应用技术
Expand 实验室简介 实验课程简介
Expand 实验室简介 实验室简介
Expand 实验室简介 实验大纲
Expand 实验室简介 实验内容
Expand 实验室简介 实验课件
Expand 实验室简介 实验视频
Expand 实验室简介 常见问题及解答
Expand 实验室简介 在线测试
Expand 实验室简介 等级考试题集
Expand 实验室简介 相关知识点
Expand 实验室简介 学习推荐
Collapse 电工与电子技术 数字图像处理
Collapse 电工与电子技术 数据结构和VC编程
Collapse 电工与电子技术 数据库
Collapse 电工与电子技术 多媒体技术应用
Collapse 电工与电子技术 汇编语言程序设计
Collapse 电工与电子技术 VB程序设计
Expand 实验室简介 课程简介
Expand 实验室简介 实验室简介
Expand 实验室简介 理论教学
Expand 实验室简介 实验教学
Expand 实验室简介 创新型实验
Expand 实验室简介 教学视频
Expand 实验室简介 课程习题
Expand 实验室简介 在线测试
Expand 实验室简介 VB等级考试
Expand 实验室简介 软件下载
Expand 实验室简介 2012年秋“VB程序设计”考试题目
Collapse 电工与电子技术 计算机维护维修
首页 >   主页 > 课程 > 计算机类 > 汇编语言程序设计 > 实验内容 > 基础实验(1-5)
基础实验(1-5) 
 

 
实验1  DEBUG调试工具中各命令的使用

 

实验名称 DEBUG调试工具中各命令的使用
【实验目的】
  熟练使用Debug调试工具中的各种命令。
【实验内容】
在Debug环境下,调入“Hello World”字符串输出程序的执行文件(Hello.exe),使用Debug命令进行单步跟踪调试程序,进行查看字符串的位置,修改字符串,查看修改寄存器及存储单元的内容等操作。
实验例程如下:(程序的功能是屏幕显示字符串“Hello World !”
data   segment
buf   db 0ah, 0dh, "Hello worild ! $"
data   ends
code   segment
assume cs:code,ds:data
start: mov   ax, data
mov   ds,   ax
lea    dx,   buf
mov   ah, 9
int 21h
mov   ah ,   4ch
int   21h
code   ends
end   start
【实验要求】
要求对Debug16,Debug32两种调试工具中的命令分别操作,而且进行比较异同。
【实验步骤】
1)执行CMD命令,进入Windows下的Dos环境。
2)输入Debug命令,出现提示符“—”后键入“?”。
3)逐项执行Debug命令,比较16位和32位Debug调试工具的异同。
【实验报告】
  以“Hello World”字符串输出程序的执行文件(Hello.exe)为例,说明上机调试情况,写出调试步骤,以及调试过程中所遇到问题的解决方法,针对调试过程中出现的问题进行分析、对执行结果进行总结分析。

实验2  MASM32编译环境及命令的使用实验

 

实验名称 MASM32编译环境及命令的使用实验
【实验目的】
  熟练使用MASM32编译环境中Ml、link命令,在MASM32下正确调试32位汇编程序。
【实验内容】
    在MASM32环境下编译、连接、运行“Hello World”程序,熟练使用QEDITOR.EXE可视化编程环境,实现控制台和Windows界面的“Hello World ”字符串输出编程。
实验例程如下:(程序的功能是屏幕显示字符串“Hello World !”
.386
.model flat, stdcall
option  casemap:none
MessageBoxA  PROTO :dword, :dword, :dword, :dword
MessageBox  equ      <MessageBoxA>
includelib    user32.lib
NULL           equ      0
MB_OK          equ       0
.stack 4096
.data
szTitle            byte 'Hi!', 0
szMsg          byte      'Hello World!' ,0
.code
start:
       invoke MessageBox,
       NULL,             ;HWND hWnd          
       offset szMsg,   ;LPCSTR lpText      
       offset szTitle, ;LPCSTR lpCaption    
       MB_OK             ;UINT uType        
       ret
end     start
【实验要求】
能够下载、安装、配置MASM32的运行环境,可以实现DOS、Console、Windows环境下的“Hello World”编程。
【实验步骤提示】
1)下载安装MASM32软件包
2)配置BIN、LIB的环境变量
3)编译、连接、执行Hello.exe文件。
【实验报告】
以“Hello World”32位程序为例,说明MASM32的上机调试情况,写出调试步骤,以及调试过程中所遇到问题的解决方法,针对调试过程中环境变量设置问题进行分析,对三种模式下的汇编语言编程进行比较说明。
实验3 段式存储中各种寻址方式的使用实验
实验名称段式存储中各种寻址方式的使用实验
实验目的
通过实验掌握汇编语言中的各种寻址方式,理解段地址、偏移地址,内部存储、外部存储的物理意义,熟悉使用DEBUG的调试命令。
实验内容
例题:假设(DS)=2000H,(CS)=2000H,(ES)=2100H,(SS)=2100H,(SI)=00A0H,(DI)=00D0H,(BX)=0100H,(BP)=0010H。请通过实验指出下列指令的源操作数寻址方式,目的操作数的寻址方式,它们的物理地址是多少?
MOV AX, 2000H
MOV BX,AX
MOV AX, [1000]
MOV BX, [BX]
MOV [DI] BX,
MOV AX, [BP]
MOV [SI+10] ,AX
MOV AX, 10[BX][SI]
MOV [BP][SI], AX
[ 实验要求 ]
能够正确指定存储单元的地址,能够正确读写存储单元的内容,要求在Debug下用A命令写入以上程序段,然后用T命令跟踪,观察指令的执行,用D命令查看每句指令的运行结果,理解数据在内存之间 和CPU之间的传递情况。
[ 实验步骤 ]
1、首先进入Debug状态,用R命令修改各寄存器的内容,以满足题目的要求。
2、用汇编命令A写入要实验的9条语句。
3、用T命令单步跟踪执行,观察运行的结果,进一步理解各种寻址方式的含义。
4、再用D命令观察每一指令执行后的内存单元的内容和运行结果的变化。
[ 实验报告]
1、写出上机调试步骤,调试过程中所遇到的问题是如何解决的。对调试过程中的内存单元内容的变化进行分析,对执行结果进行分析。
2、写出实验体会及对寻址方式的理解。
实验4 汇编语言中汇编指令使用实验
实验名称】汇编语言中汇编指令使用实验
实验目的
掌握汇编中加法(ADD)和传送(MOV)指令的用法,了解指令对标志位的影响,掌握多字节的运算方法。
[实验内容 ]
对两个32位数做加法运算,这两个数从地址(1000:0050)开始顺序存放,数值分别为12345678H和2468BCE0H。
参考程序段如下:
假设在内存BUF1和BUF2开始的两个存储区中顺序存放有两个四字节数, 求出这两个四字节数之和,并把结果存入以BUFFER3为首址的存区中。
Mov ax ,buffer1
Add ax ,buffer2
Mov buffer3 ,ax
Mov ax,buffer1+2
Adc ax,buffer2+2
Mov buffer3+2,ax
[实验要求 ]
1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法、对程序结果的分析。实验过程注意观察进位标志位(CF)的变化。
2、根据题意写出BUF1、BUF2、BUF3的物理地址,正确理解顺序存放的含义。
3、本实验只要求在Debug状态下进行。
[实验步骤 ]
1、在Debug状态下,用E命令把两个数写入内存。注意低位字节的写法。
2、编程时注意:高位相加时,要加上低位相加所产生的进位。
3、用D命令观察程序的运行结果。
[实验报告]
1、说明上机调试的情况,包括上机调试步骤、调试过程中所遇到的问题、对调试过程中的问题进行分析、对执行结果进行分析。
2、写出程序清单和执行过程。
实验5 数据段中变量的定义及数据传送实验
实验名称数据段中变量的定义及数据传送实验
实验目的
掌握数据段及数据段中变量的定义方法,了解数据成片传送的程序编写。
[ 实验内容 ]
用汇编语言编写数据传送程序,假定数据区DATA中有一组数据,分别为30h,31h,32h,33h,34h,35h,36h,37h,38h,39h,编程实现把这组数据传送至DATA2存储区中。
[ 实验要求 ]
1、分析题目,确定程序中的原始数据和最终结果的存储结构。
2、写出算法和流程图。
3、对程序结果进行分析,并准备上机调试过程。
4、能够编写完整的汇编语言程序,通过MASM软件包中编译(MASM)、连接(LINK)命令生成可执行执行文件,并进行跟踪调试(Debug、CodeView)。
5、如果仅使用Debug中的E、M命令,如何实现源数据到目标数据的数据传送过程。
6、如何用D命令随时观察数据的传送移动过程。
[ 实验步骤 ]
1、编写完整的的程序框架,参考程序如下:
data segment
data1 db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
data2 db 10dup(?)
data ends
code segment
assume ds:data,cs:code
start: mov ax, data
mov ds, ax
mov es, ax
cld
lea si, data1
lea di, data2
mov cx, 10
rep movsb
mov ah,4ch
int 21h
code ends
end start
2、以文件名LX5.ASM存盘。
3、对源程序进行汇编,如MASM  LX5.ASM;生成了目标文件LX5.OBJ 。
4、连接生成可执行文件,如LINK  LX5;生成了执行文件LX5.EXE 。
5、用Debug或CodeView工具单步跟踪观察运行结果。
[ 实验报告 ]
1、说明上机调试的情况,写出程序框图。
2、写出程序清单和执行过程。
3、写出汇编语言程序的上机调试过程。