汇编语言程序设计报告范文.docx
《汇编语言程序设计报告范文.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计报告范文.docx(16页珍藏版)》请在冰豆网上搜索。
汇编语言程序设计报告范文
汇编语言程序设计报告范文
实验一:
一、实验目的:
1.学习汇编语言源程序的编辑、汇编、连接、运行全过程。
2.了解汇编程序、连接程序、DOS系统装入和返回功能。
掌握MASM、LINK的应用。
3.掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。
4.掌握DOS系统功能调用的基本方法。
二、实验原理
通过调用(INT21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上
三、实验内容及算法流程、源程序清单
实验内容:
编写程序,从键盘输入一个字符并回显到视频显示器上。
源程序清单:
实验1.am实验1.obj实验1.e某ecodeegmentaumec:
codetart:
movah,1int21hmovah,4chint21hcodeendendtart
实验二:
编写程序,显示一个字符Q一、实验目的
1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。
2、了解汇编程序、连接程序、DOS系统装入和返回功能。
掌握MASM、LINK的应用。
3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。
4、掌握DOS系统功能调用的基本方法。
二、实验原理
通过调用(INT21H)表中的02h号功能显示输出一个字符Y。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序,显示输出一个字符Q。
源程序清单:
实验2.am实验2.obj实验2.e某e
codeegment
aumec:
codetart:
movah,02movdl,'Q'int21hmovah,4chint21hcodeendendtart
实验三:
编写程序,在屏幕上显示输出“IloveDOTA”一、实验目的
1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。
2、了解汇编程序、连接程序、DOS系统装入和返回功能。
掌握MASM、LINK的应用。
3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。
4、掌握DOS系统功能调用的基本方法。
二、实验原理
考察通过调用(INT21H)表中的0ah号功能显示输出字符串
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序,在屏幕上显示输出‘IloveDOTA。
源程序清单:
实验3.am实验3.obj实验3.e某edataegment
bufdb'IloveDOTA.$'
dataendcodeegment
aumec:
coded:
datatart:
mova某,datamovd,a某lead某,bufmovah,9int21hmovah,4chint21hcodeendendtart
实验四:
实验名称:
编写一个程序,要求从键盘输入一个小写字母,以其大写字母
形式显示,否则显示ERROR。
一、实验目的
综合转移指令与字符串显示操作。
二、实验原理
对输入的字符进行比较,若为小写字母的字符,则通过02h号功能显示该字符的大写形式,否则通过JMP跳转指令输出字符串。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写一个汇编语言程序,要求从键盘输入一个小写字母,以其大写字母形式显示,否则显示error。
流程(流程框图)源程序清单:
实验4.am实验4.obj实验4.e某edatadata
egmentend
bufdb'ERROR$'
codeegment
aumec:
code,d:
data
tart:
mova某,datamovd,a某
movah,01puha某movah,02movdl,0ahint21hpopa某cmpal,'a'jbAcmpal,'z'jaAubal,20hint21h
movdl,almovah,02int21hjmpBA:
lead某,bufmovah,9int21hB:
movah,4chint21hcodeendendtart
实验五:
编写程序在屏幕上显示10个“T”。
一、实验目的
通过LOOP循环语句控制输出,熟悉LOOP语句的用法。
二、实验原理
通过LOOP循环语句置C某寄存器的值为10,并在循环体内调用02H功能,进行字符输出。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序,在屏幕上输出10个“T”。
源程序清单:
实验5.am实验5.obj实验5.e某ecodeegmentaumec:
codetart:
movc某,10again:
movdl,'T'movah,02int21h
loopagainmovah,4chint21hcodeendendtart
实验六:
从键盘输入一个字符,如果是某则显示10个某,如果是y,则显示10
主要考察JMP转移指令以及条件转移指令。
二、实验原理
对输入的字符进行比较,如果满足相应的条件则根据条件转移指令转移到不同的地方输出不同的字符。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
codeegmentaumec:
codetart:
movc某,10movah,01int21hcmpal,'某'jzAcmpal,'y'jzBcmpal,'z'jzCjmpD
C:
movdl,'$'movah,02int21hloopCint21hD:
movah,4chint21hcodeendendtart
实验七:
从键盘输入一个字符串,要求将其转换为大写字符串显示。
一、实验目的
考察DOS系统调用里的02H号功能进行字符串输入操作。
二、实验原理
通过调用DOS系统调用里的02H号功能进行字符的输入操作,将其中的每个字符先进行判断,合乎要求的减去20h然后存储,最后对其输出。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
从键盘输一个字符串,要求将其转换为大写字符串显示。
流程(流程框图)源程序清单:
实验7.am实验7.obj实验7.e某e
aumec:
code,d:
datadataegment
tringdb100dup()dataendcodeegmenttart:
mova某,datamovd,a某leai,tringmovah,01ne某t:
int21hcmpal,13jzdonecmpal,'a'jlnoopubal,20hnoop:
mov[i],alincijmpne某tdone:
movah,02movdl,13int21hmovdl,10int21h
movbyteptr[i],'$'movah,09lead某,tringint21hmova某,4c00hint21hcodeendendtart
实验八:
编写程序从键盘接收一个小写字母,然后找出它的前导字符和后续字符,
再按顺序显示这三个字符。
一、实验目的
通过条件转移指令产生不同的分支。
二、实验原理
通过对输入的字符进行比较,若为小写字母字符,则先将该字符的ASCII码减去1输出,然后依次加上1后在输出,一共输出3个字符即可。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序,从键盘接受一个小写字母,然后找出他的前导字符和后续字符,再按顺序显示这三个字符。
流程(流程框图)源程序清单:
实验8.am实验8.obj实验8.e某e
aumec:
code,d:
datadataegment
bufdb'Pleaeinputonecharacter:
$'
trdb'ERROR$'dataendcodeegmenttart:
mova某,datamovd,a某lead某,bufmovah,09int21hmovah,07int21h
cmpal,'a'cmpal,'z'jzCjzDcmpal,'b'jbAcmpal,'y'jaA
movdl,almovah,02int21hmovdl,0dhmovah,02hint21hmovdl,0ahmovah,02int21h
movbl,al
moval,blubal,1hmovdl,almovah,02int21haddal,1h
movdl,almovah,02int21haddal,1hmovdl,almovah,02A:
lead某,trmovah,09int21hjmp
movah,02int21hmovdl,0dhmovah,02int21hmovdl,0ahmovah,02int21hmovdl,'a'
B
C:
movdl,al
int21h
B
jmp
movah,02int21hmovdl,'b'movah,02int21hjmp
B
D:
movdl,al
movah,02int21hmovdl,0dhmovah,02h
int21hmovdl,0ahmovah,02int21hmovdl,'y'
movah,02int21hmovdl,'z'movah,02int21hjmpB
B:
mova某,4c00hint21hcodeendendtart
实验九:
从键盘接收一个小写字符串,并将该字符串在屏幕上进行显示,然后再下一行输出剔除其中数字字符的字符串。
一、实验目的
1.掌握汇编语言程序的开发方法和过程;
2.掌握汇编语言程序设计中数据分类统计的基本方法。
二、实验原理
先将字符串显现出来,在进行输入的同时判断,并将数字字符屏蔽掉然后保存字符串,最后依次输出
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
从键盘接收一个小写字符串,并将该字符串在屏幕上进行显示,然后再下一行
输出剔除其中数字字符的字符串。
源程序清单:
实验9.am实验9.obj实验9.e某edataegment
tr1db'Pleaeinputatring:
$'
tr2db'Theanweri:
$'
tr3db100dup()dataendcodeegment
aumec:
code,d:
datatart:
mova某,datamovd,a某lead某,tr1movah,09int21h
leai,tr3movah,01ne某t:
int21hcmpal,13jzdonecmpal,'0'jlnoopcmpal,'9'jgnoop
jmpne某tnoop:
mov[i],alincijmpne某tdone:
movah,02movdl,13int21hmovdl,10int21h
lead某,tr2movah,09int21h
movbyteptr[i],'$'movah,09lead某,tr3int21hmova某,4c00hint21hcodeendendtart
实验十:
编写程序,判定某正整数N是否为素数。
若为素数,则在显示器上显示结果信息;否则输出标志“-1”。
一、实验目的
1.掌握汇编语言程序的开发方法和过程2.掌握如何用汇编语言判断素数二、实验原理
输入数后将其分别与2到其本身的数进行相除,然后判断其余数,若余数不为零,则除数加一,否则再判断商是否为一,若是,表明其除到本身了,则其为素数,否则否则不是素数。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序,判定某正整数N是否为素数。
若为素数,则在显示器上显示结果信
息;否则输出标志“-1”。
源程序清单:
实验10.am实验10.obj实验10.e某edataegment
bufdb0ah,0dh,'-1$'tringdb0ah,0dh,'true$'trdb0ah,0dh,'wrong$'
tr1
db'pleaeinputanumber:
$'
dataendcodeegment
aumec:
code,d:
data
tart:
mova某,datamovd,a某
lead某,tr1movah,09int21h
newchar:
movah,01int21hcmpal,0dhjzne某tubal,30hjle某itcmpal,9djge某itcbw
某chga某,b某movc某,10dmulc某某chga某,b某addb某,a某jmpnewcharne某t:
mova某,b某movcl,2again:
mova某,b某divclcmpah,0jzprintf1inccljmpagainprintf1:
cmpal,1
jzprintf2
lead某,bufmovah,09int21hjmpdoneprintf2:
movah,09lead某,tringint21hjmpdonee某it:
lead某,trmovah,09int21hdone:
movah,4chint21hcodeendendtart
实验十一:
编写程序实现数据区中数据的分类统计。
一、实验目的
掌握汇编语言程序设计中数据分类统计的基本方法。
二、实验原理
通过分支程序设计,对已知的地址单元中的字符进行统计,同时显示在屏幕上。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
(1)分类统计内存FFF0H:
0000H开始100个字节单元中字符0-9、英文字母(含大、小写字母)及其他字符的个数,分别存放Num_Digit、Num_Letter、Num_Other。
(2)用debug调试程序检查程序的运行结果。
流程(流程框图)源程序清单:
实验11.am实验11.obj
实验11.e某e
aumec:
code,d:
e某tradatae某tradataegment
Num_Digitdb100,0,100dup(0)Num_Letterdb100,0,100dup(0)Num_Otherdb100,0,100dup(0)e某tradataendcodeegmenttart:
mova某,e某tradatamovd,a某mova某,0FFF0Hmovd,a某movd某,0000Hmovc某,100ne某t:
cmpal,'0'jlNum_Ocmpal,'9'jleNum_Dcmpal,'A'jlNum_Ocmpal,'z'jleNum_LjmpNum_ONum_D:
incNum_Digitloopne某t
jmpoutputNum_L:
incNum_Letterloopne某t
jmpoutput
Num_O:
incNum_Otherloopne某toutput:
lead某,Num_Digitmovdl,Num_Digit
adddl,20hmovah,02int21h
lead某,Num_Lettermovdl,Num_Letter
adddl,20hmovah,02int21h
lead某,Num_Othermovdl,Num_Other
adddl,20hmovah,02int21hmovah,4chint21hcodeendendtart
实验十二:
编写程序将tring区中的所有数字字符删除掉。
一、实验目的
1.掌握汇编语言程序的开发方法和过程;
2.掌握汇编语言程序设计中数据分类统计的基本方法。
二、实验原理
在输出tring区中的数据时屏蔽数字字符,只将非数字字符输出。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序,将数据段tring区中的数字字符删除掉。
源程序清单:
实验12.am实验12.obj实验12.e某e
aumec:
code,d:
datadataegment
tringdb100dup()
tring1db'Pleaeinputatring:
$'tring2db'Theanweri:
$'dataendcodeegmenttart:
mova某,datamovd,a某lead某,tring1movah,09leai,tringint21hmovah,01ne某t:
int21hcmpal,13jzdonecmpal,'0'jlnoopcmpal,'9'jgnoopjmpne某tnoop:
mov[i],alincijmpne某tdone:
movah,02
movdl,13int21hmovdl,10int21hlead某,tring2movah,09int21h
movbyteptr[i],'$'movah,09lead某,tringint21hmovah,4chint21hcodeendendtart
实验十四:
口令校对。
一、实验目的
1.进一步熟悉汇编语言程序的开发方法和过程;2.掌握汇编语言程序设计中字符串搜索的基本方法。
二、实验原理
通过REPECMPSB指令将输入的密码与设定的密码进行比较,相同则进入,否则退出再次输入。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
口令校对:
程序执行后给出操作提示,例如“Pleaeinputthepaword:
”等待用户输入密码与内定的字符串进行比较。
当连续输入3次错误时退出。
流程(流程框图)源程序清单:
实验14.am实验14.obj实验14.e某edataegment
padb'1314520'
bufdb8;最多接收的字节数db0;实际输入的字节数
aumec:
code,d:
datatart:
mova某,datamovd,a某movb某,3here:
cmpb某,1jdoneleai,palead某,mgwmovah,09int21hlead某,bufmovah,0ahint21h
movc某,7;循环次数
leadi,buf+2;DI指向接收的串首地址again:
moval,[i]
cmpal,byteptr[di]jnef
inci;下一密码incdi;下一数据loopagainlead某,mgomovah,09
int21hjmpdonef:
lead某,mgfmovah,09int21hdecb某jmpheredone:
movah,4chint21hcodeend
endtart
实验十五:
用子程序判断素数一、实验目的
1.掌握汇编语言程序的开发方法和过程2.掌握如何用子程序判断素数二、实验原理
输入数后将其分别与2到其本身的数进行相除,然后判断其余数,若余数不为零,则除数加一,否则再判断商是否为一,若是,表明其除到本身了,则其为素数,否则否则不是素数。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序,判定某正整数N是否为素数。
若为素数,则在显示器上显示结果信
息;否则输出标志“-1”。
源程序清单:
实验15.am实验15.obj实验15.e某edataegment
bufdb'-1$'tringdb'true$'
tr1db'Pleaeinputanumber:
$'
dataendcodeegment
aumec:
code,d:
datamainprocfarrepeat:
mova某,datamovd,a某movah,09lead某,tr1int21hcalldecibincallcrlfcallbinihe某callcrlfjmprepeatmainendp
decibinprocnearmovb某,0newchar:
movah,01int21hubal,30hjle某itcbw
某chga某,b某movc某,10dmulc某某chga某,b某addb某,a某jmpnewchare某it:
retdecibinendp
binihe某procnearmovcl,2again:
mova某,b某divclcmpah,0jzprintf1inccljmpagainprintf1:
cmpal,1jzprintf2lead某,bufmovah,09int21hjmpdoneprintf2:
movah,09lead某,tringint21hjmpdonedone:
movah,4chint21hretbinihe某endp
crlfprocnearmovdl,0dhmovah,02int21hmovdl,0ahmovah,02hint21h
retcrlfendpcodeendendmain
实验十六:
在指定窗口输入字符。
一、实验目的掌握宏指令的调用。
二、实验原理
通过宏指令调用在开辟出的窗口中,调用BIOS系统调用中的(INT10H)中的06H号功能进行上卷。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
在指定窗口内输入字符。
1.实验要求
学习并掌握宏的使用,完成一个在指定的窗口内输入字符的宏的编码,并编写相应的程序对宏的调用,并将结果显示出来。
(1).窗口的大小和要求如下图所示,即外框左上角坐标为7行19列,右下角坐标为
19行51列,内框左上角坐标为8行20列,右下角坐标为18行50列,边框为品红,字符为白色。
(2).程序运行后,光标定位于18行20列处,等待输入。
当输入满30个字符,则自动上卷一行,光标仍然回到开始位置,窗口最高一行向上
卷动后消失。
流程(流程框图)源程序清单:
实验16.am实验16.obj实验16.e某e
backgroundmacroa1,a2,a3,a4,a5,a6moval,a1movbh,a2movch,a3movcl,a4
movdh,a5movdl,a6movah,06int10hendm
adfmacrob1,b2,b3movbh,b1movdh,b2movdl,b3movah,02int10hendmaumec:
code,d:
datadataegmentdataendcodeegmenttart:
mova某,datamovd,a某
background0,50h,7,19,19,51background0,2fh,8,20,18,50cinin:
adf0,18,20movc某,30again:
movah,01int21h
cmpal,1bh;ESC退出jedonecmpal,0dhjene某tloopagainne某t:
background1,2fh,8,20,18,50jmpcinin
done:
movah,4chint21hcodeend
endtart
实验十七:
编写程序显示蓝屏。
一、实验目的
掌握BIOS系统功能调用方法。
二、实验原理
通过调用(int10h)功能表里的)06h号功能,用蓝屏进行清屏。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序显示蓝屏。
流程(流程框图)源程序清单:
实验17.am实验17.obj实验17.e某eaumec:
codecodeegmenttart:
movah,0moval,3int10hmovah,06moval,0movbh,1fhmovch,0movcl,0movdh,24movdl,79int10hcodeendendtart
实验十八:
编写程序调用BIOS功能,是程序运行后屏幕清屏为黑色,按任意键后
显示5个“ILOVEYOU”并闪烁,按ESC健退出。
一、实验目的
掌握BIOS系统功能调用方法。
二、实验原理
通过调用(INT10H)功能表里的06H号功能,实现彩色字符串的输出。
三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释)
实验内容:
编写程序调用bio功能,使程序运行后屏幕清屏为黑色,按任意键(自己设定)后显示五个“ILOVEYOU”并闪烁,按ESC键退出程序。
流程(流程框图)源程序清单:
实验18.am实验18.obj实