汇编实验报告文档格式.docx
- 文档编号:15804150
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:22
- 大小:364.44KB
汇编实验报告文档格式.docx
《汇编实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《汇编实验报告文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
比较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'
mess1db'
Match'
13,10,'
$'
mess2db'
Nomatch!
'
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
datasegment
sourcedb256dup(055h)
targetdb256dup(0aah)
moves,ax
movsi,offsetsource
movdi,offsettarget
repmovsb
endstart
3,大小写转换
CODESEGMENT
ASSUMECS:
CODE
START:
PUSHAX
MOVAH,01
INT21H
SUBAL,20H
MOVDL,AL
MOVAH,02
POPAX
MOVAX,4C00H
CODEENDS
ENDSTART
七、实验结果
1,存储器清零
实验四基本程序结构练习
一,实验目的
1,掌握循环程序和分支程序的设计方法
2,进一步熟悉利用debug程序修改参数的方法,并检查和验证结果的正确性
3,学会针对不同的问题,选用不同的循环组织结构方法
1,编写一个小程序,显示AL寄存器中的两位十六进制数
2,编写一个程序,判别键盘上输入的字符;
若是1-9字符,则显示之;
若为A-Z或a-z字符,均显示‘c’;
若是回车字符,则结束程序,若为其它字符则不显示,继续等待新的字符输入。
三、程序清单
1,;
disphex.asm
code
moval,3eh
pushax
movdl,al
movcl,4
shrdl,cl
cmpdl,9
jbenext1
adddl,7
next1:
adddl,30h
movah,2
popax
anddl,0fh
jbenext2
next2:
movah,4ch
2,显示键入字符程序
dispkey.asm
movah,1
int21h
cmpal,0dh
jzdone
cmpal,'
0'
jbnext
cmpal,'
9'
jacharup
movdl,al
movah,2
jmpstart
charup:
cmpal,41h
cmpal,5ah
jachardn
dispc:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验 报告