汇编实验报告.docx
- 文档编号:2893113
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:22
- 大小:364.44KB
汇编实验报告.docx
《汇编实验报告.docx》由会员分享,可在线阅读,更多相关《汇编实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
汇编实验报告
汇编语言实验报告
学院:
计算机学院
专业:
网络工程
指导老师:
纪平
实验一汇编语言程序调试方法
一、实验目的
1,熟悉汇编语言运行环境和方法
2,了解如何使用汇编语言编制程序
3,熟悉debug有关命令的使用方法
4,利用debug掌握有关指令的功能
5,利用debug运行简单的程序段
二、实验内容
1,学会输入、编辑汇编语言程序
2,学会对汇编语言程序进行汇编、连接和运行
3,进入和退出debug程序
4,学会debug中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。
对于U命令、N命令、W命令等,也应试一下。
三、实验准备
1,仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。
2,准备好程序清单、设计好调试步骤、测试方法、对运行结果的分析
3,编写一个程序:
比较2个字符串所含的字符是否相同。
若相同则显示’Match.’,否则显示’Nomatch!
’。
4,仔细阅读有关debug命令的内容,对有关命令,都要事先准备好使用的例子。
四、实验步骤
1,在DOS提示符下,进入masm目录。
2,在MASM目录下启动edit编辑程序,输入源程序,并对其进行汇编、连接和运行。
(1)调用edit输入、编辑源程序并保存在指定的目录中。
例:
editabc.asm
(2)用汇编程序masm对源程序汇编产生目标文件obj。
例:
masmabc
(3)用连接程序link产生执行文件exe。
例:
linkabc
(4)执行程序
3,详细记录每一步所用的命令,以及查看结果的方法和具体结果。
五、实验结果
1,输入sample.asm的源码
;PROGRAMTITLEGOESHERE--Comparestring
;****************************************************************************
datareasegment;definedatasegment
string1db'Movethecursorbackward.'
string2db'Movethecursorbackward.'
;
mess1db'Match',13,10,'$'
mess2db'Nomatch!
',13,10,'$'
datareaends
;****************************************************************************
programsegment;definecodesegment
;----------------------------------------------------------------------------
mainprocfar
assumecs:
program,ds:
datarea,es:
datarea
start:
;startingexecutionaddress
;setupstackforreturn
pushds;saveolddatasegment
subax,ax;putzeroinAX
pushax;saveitonstack
;setDSregistertocurrentdatasegment
movax,datarea;datareasegmentaddr
movds,ax;intoDSregister
moves,ax;intoESregister
;MAINPARTOFPROGRAMGOESHERE
leasi,string1
leadi,string2
cld
movcx,25
repzcmpsb
jzmatch
leadx,mess2
jmpshortdisp
match:
leadx,mess1
disp:
movah,09
int21h
ret;returntoDOS
mainendp;endofmainpartofprogram
;--------------------------------------------------------------------
programends;endofcodesegment
;********************************************************************
endstart;endassembly
2,汇编生成目标文件
3,连接生成exe文件
4,执行程序
5,调试程序
-g命令在debug环境下运行该文件
-d0(-dds:
ea)命令显示指定数据段地址中的内容
-u命令显示汇编源程序
-eds:
ea更改指定位置的内容
实验二用DEBUG编程使用堆栈段
AX和BX的内容进行交换等
一、实验目的:
1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。
3、掌握简单指令的执行过程。
二、实验内容:
1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。
请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。
2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。
在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。
程序清单如下:
MOVAX,BX
MOVAX,0304H
MOVAX,[0304H]
MOVAX,[BX]
MOVAX,0001[BX]
MOVAX,[BX][SI]
MOVAX,0001[BX][SI]
HLT
三、实验要求:
1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。
2、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序和执行程序。
四、实验内容
1,用堆栈作为交换空间交换ax和bx的值
(1),debug源程序
(2),运行结果
2,按照题目要求查看运行结果
(1)在debug模式下输入源程序
(2)在debug模式下单步执行的结果
当程序执行完毕后AX保存的是最后一次的值
实验三存储器操作和系统功能调用
一、实验要求
1,指定存储器中某块的起始地址和长度,要求能将其中内容清零
2,将指定源地址和长度的存储块移动到目标位置
二、实验目的
1,掌握存储器读写方法和内存的移动方法。
2,了解存储器块的操作方法,加深对存储器读写的认识。
3,将键盘输入的小写字母用大写字母显示出来
三、实验说明
1,通过本实验,可以了解微机读写存储器的读写方法,同时也可以了解微机编程、调试方法。
如何将存储器块的内容置成某固定值。
2,块移动是计算机常用操作之一,多用于大量的数据复制和图像操作。
四、实验内容
1,存储器块清零
2,内存块移动
3,试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
五、程序流程图
1
否
2.
六、程序清单
1,内存块清零
datasegment
blockdb256dup(55h)
dataends
codesegment
assumecs:
code,ds:
data
startprocnear
movax,data
movds,ax
movbx,offsetblock
movcx,256
again:
mov[bx],byteptr0
incbx
Loopagain
jmp$
codeends
endstart
2,内存块移动
datasegment
sourcedb256dup(055h)
targetdb256dup(0aah)
dataends
codesegment
assumecs:
code,ds:
data
startprocnear
movax,data
movds,ax
moves,ax
movsi,offsetsource
movdi,offsettarget
movcx,256
repmovsb
jmp$
codeends
endstart
3,大小写转换
CODESEGMENT
ASSUMECS:
CODE
START:
PUSHAX
MOVAH,01
INT21H
SUBAL,20H
MOVDL,AL
MOVAH,02
INT21H
POPAX
MOVAX,4C00H
INT21H
CODEENDS
ENDSTART
七、实验结果
1,存储器清零
2,内存块移动
3,大小写转换
实验四基本程序结构练习
一,实验目的
1,掌握循环程序和分支程序的设计方法
2,进一步熟悉利用debug程序修改参数的方法,并检查和验证结果的正确性
3,学会针对不同的问题,选用不同的循环组织结构方法
二、实验内容
1,编写一个小程序,显示AL寄存器中的两位十六进制数
2,编写一个程序,判别键盘上输入的字符;若是1-9字符,则显示之;若为A-Z或a-z字符,均显示‘c’;若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。
三、程序清单
1,;disphex.asm
codesegment
assumecs:
code
start:
moval,3eh
pushax
movdl,al
movcl,4
shrdl,cl
cmpdl,9
jbenext1
adddl,7
next1:
adddl,30h
movah,2
int21h
popax
movdl,al
anddl,0fh
cmpdl,9
jbenext2
adddl,7
next2:
adddl,30h
movah,2
int21h
movah,4ch
int21h
codeends
endstart
2,显示键入字符程序
;dispkey.asm
codesegment
assumecs:
code
start:
movah,1
int21h
cmpal,0dh
jzdone
cmpal,'0'
jbnext
cmpal,'9'
jacharup
movdl,al
movah,2
int21h
jmpstart
charup:
cmpal,41h
jbnext
cmpal,5ah
jachardn
dispc:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验 报告