




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一:一、实验目的: 1. 学习汇编语言源程序的编辑、汇编、连接、运行全过程。2. 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。3. 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。4. 掌握DOS系统功能调用的基本方法。二、 实验原理通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上三、 实验内容及算法流程、源程序清单 实验内容:编写程序,从键盘输入一个字符并回显到视频显示器上。源程序清单:实验1.asm实验1.obj实验1.execode segment assume cs:codestart: mov ah,1 int 21h mov ah,4ch int 21hcode ends end start实验二:编写程序,显示一个字符Q一、实验目的 1、 学习汇编语言源程序的编辑、汇编、连接、运行全过程。2、 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。3、 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。4、 掌握DOS系统功能调用的基本方法。二、 实验原理通过调用(INT 21H)表中的02h号功能显示输出一个字符Y。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,显示输出一个字符Q。源程序清单:实验2.asm实验2.obj实验2.execode segment assume cs:codestart: mov ah,02 mov dl,Q int 21h mov ah,4ch int 21hcode ends end start实验三:编写程序,在屏幕上显示输出“I love DOTA”一、 实验目的1、 学习汇编语言源程序的编辑、汇编、连接、运行全过程。2、 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。3、 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。4、 掌握DOS系统功能调用的基本方法。二、 实验原理考察通过调用(INT 21H)表中的0ah号功能显示输出字符串三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,在屏幕上显示输出I love DOTA。源程序清单:实验3.asm实验3.obj实验3.exedata segment buf db I love DOTA.$data endscode segment assume cs:code ds:datastart: mov ax,data mov ds,ax lea dx,buf mov ah,9 int 21h mov ah,4ch int 21hcode ends end start实验四:实验名称:编写一个程序,要求从键盘输入一个小写字母,以其大写字母形式显示,否则显示ERROR。一、 实验目的综合转移指令与字符串显示操作。二、 实验原理对输入的字符进行比较,若为小写字母的字符,则通过02h号功能显示该字符的大写形式,否则通过JMP跳转指令输出字符串。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写一个汇编语言程序,要求从键盘输入一个小写字母,以其大写字母形式显示,否则显示error。流程(流程框图)源程序清单:实验4.asm实验4.obj实验4.exedatasegmentbuf db ERROR$dataendscode segment assume cs:code,ds:data start: mov ax,data mov ds,axmov ah,01 int 21hpush axmov ah,02mov dl,0ahint 21hpop axcmp al,ajb Acmp al,zja Asub al,20h mov dl,al mov ah,02 int 21hjmp B A:lea dx,buf mov ah,9 int 21hB:mov ah,4ch int 21hcode ends end start实验五:编写程序在屏幕上显示10个“T”。一、 实验目的通过LOOP循环语句控制输出,熟悉LOOP语句的用法。二、 实验原理通过LOOP循环语句置CX寄存器的值为10,并在循环体内调用02H功能,进行字符输出。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,在屏幕上输出10个“T”。源程序清单:实验5.asm实验5.obj实验5.execode segment assume cs:codestart: mov cx,10again:mov dl,Tmov ah,02int 21h loop again mov ah,4ch int 21hcode ends end start实验六:从键盘输入一个字符,如果是x则显示10个*, 如果是y,则显示10个如果是z,则显示10个$,否则退出程序。一、 实验目的主要考察JMP转移指令以及条件转移指令。二、 实验原理对输入的字符进行比较,如果满足相应的条件则根据条件转移指令转移到不同的地方输出不同的字符。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 从键盘输入一个字符,如果是x则显示10个*, 如果是y,则显示10个如果是z,则显示10个$,否则退出程序。源程序清单:实验6.asm实验6.obj实验6.execode segment assume cs:codestart: mov cx,10 mov ah,01 int 21h cmp al,x jz A cmp al,y jz B cmp al,z jz Cjmp DA: mov dl,* mov ah,02 int 21h loop A jmp DB: mov dl, mov ah,02 int 21h loop Bjmp DC: mov dl,$ mov ah,02 int 21h loop C int 21hD: mov ah,4ch int 21hcode ends end start实验七:从键盘输入一个字符串,要求将其转换为大写字符串显示。一、 实验目的考察DOS系统调用里的02H号功能进行字符串输入操作。二、 实验原理通过调用DOS系统调用里的02H号功能进行字符的输入操作,将其中的每个字符先进行判断,合乎要求的减去20h然后存储,最后对其输出。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 从键盘输一个字符串,要求将其转换为大写字符串显示。流程(流程框图)源程序清单:实验7.asm实验7.obj实验7.exeassume cs:code,ds:datadata segment string db 100 dup(?)data endscode segmentstart: mov ax,data mov ds,ax lea si,string mov ah,01 next: int 21h cmp al,13 jz done cmp al,a jl noop sub al,20hnoop: mov si,al inc si jmp nextdone: mov ah,02 mov dl,13 int 21h mov dl,10 int 21h mov byte ptr si,$ mov ah,09 lea dx,string int 21h mov ax,4c00h int 21hcode ends end start实验八:编写程序从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。一、 实验目的通过条件转移指令产生不同的分支。二、 实验原理通过对输入的字符进行比较,若为小写字母字符,则先将该字符的ASCII码减去1输出,然后依次加上1后在输出,一共输出3个字符即可。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,从键盘接受一个小写字母,然后找出他的前导字符和后续字符,再按顺序显示这三个字符。流程(流程框图)源程序清单:实验8.asm实验8.obj实验8.exeassume cs:code,ds:datadata segment buf db Please input one character :$ str db ERROR!$data endscode segmentstart: mov ax,data mov ds,ax lea dx,buf mov ah,09 int 21h mov ah,07 int 21hcmp al,a jz Ccmp al,z jz D cmp al,b jb A cmp al,y ja Amov dl,almov ah,02int 21h mov bl,almov dl,0dhmov ah,02hint 21hmov dl,0ahmov ah,02int 21h mov al,bl sub al,1h mov dl,al mov ah,02 int 21h add al,1h mov dl,al mov ah,02 int 21h add al,1h mov dl,al mov ah,02int 21h jmpB A: lea dx,str mov ah,09 int 21h jmpBC: mov dl,almov ah,02int 21hmov dl,0dhmov ah,02int 21hmov dl,0ahmov ah,02int 21hmov dl,a mov ah,02 int 21h mov dl,b mov ah,02 int 21h jmpBD: mov dl,almov ah,02int 21hmov dl,0dhmov ah,02hint 21hmov dl,0ahmov ah,02int 21hmov dl,y mov ah,02 int 21h mov dl,z mov ah,02 int 21hjmpBB: mov ax,4c00h int 21hcode ends end start实验九:从键盘接收一个小写字符串,并将该字符串在屏幕上进行显示,然后再下一行输出剔除其中数字字符的字符串。一、 实验目的1. 掌握汇编语言程序的开发方法和过程;2. 掌握汇编语言程序设计中数据分类统计的基本方法。二、实验原理先将字符串显现出来,在进行输入的同时判断,并将数字字符屏蔽掉然后保存字符串,最后依次输出三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 从键盘接收一个小写字符串,并将该字符串在屏幕上进行显示,然后再下一行输出剔除其中数字字符的字符串。源程序清单:实验9.asm实验9.obj实验9.exedata segment str1 db Please input a string :$str2 db The answer is :$ str3 db 100 dup(?)data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax lea dx,str1 mov ah,09 int 21hlea si,str3 mov ah,01 next: int 21h cmp al,13 jz done cmp al,0 jl noop cmp al,9 jg noopjmp nextnoop: mov si,al inc si jmp nextdone: mov ah,02 mov dl,13 int 21h mov dl,10 int 21hlea dx,str2mov ah,09int 21h mov byte ptr si,$ mov ah,09 lea dx,str3 int 21h mov ax,4c00h int 21hcode ends end start实验十:编写程序,判定某正整数N是否为素数。若为素数,则在显示器上显示结果信息;否则输出标志“-1”。一、 实验目的1. 掌握汇编语言程序的开发方法和过程2掌握如何用汇编语言判断素数二、实验原理输入数后将其分别与2到其本身的数进行相除,然后判断其余数,若余数不为零,则除数加一,否则再判断商是否为一,若是,表明其除到本身了,则其为素数,否则否则不是素数。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,判定某正整数N是否为素数。若为素数,则在显示器上显示结果信息;否则输出标志“-1”。源程序清单:实验10.asm实验10.obj实验10.exedata segment buf db 0ah,0dh,-1$ string db 0ah,0dh,true$ str db 0ah,0dh,wrong$str1dbplease input a number:$data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,axleadx,str1movah,09int21hnewchar: mov ah,01 int 21h cmp al,0dh jz next sub al,30h jl exit cmp al,9d jg exit cbw xchg ax,bx mov cx,10d mul cx xchg ax,bx add bx,ax jmp newcharnext: mov ax,bx mov cl,2again: mov ax,bx div cl cmp ah,0 jz printf1 inc cl jmp againprintf1:cmp al,1jz printf2 lea dx,buf mov ah,09 int 21h jmp doneprintf2: mov ah,09 lea dx,string int 21h jmp doneexit: lea dx,str mov ah,09 int 21hdone: mov ah,4ch int 21hcode ends end start实验十一:编写程序实现数据区中数据的分类统计。一、 实验目的掌握汇编语言程序设计中数据分类统计的基本方法。二、 实验原理通过分支程序设计,对已知的地址单元中的字符进行统计,同时显示在屏幕上。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: (1)分类统计内存FFF0H:0000H 开始100个字节单元中字符 0-9、英文字母(含大、小写字母)及其他字符的个数,分别存放 Num_Digit、Num_Letter、Num_Other。(2)用debug调试程序检查程序的运行结果。流程(流程框图)源程序清单:实验11.asm实验11.obj实验11.exeassume cs:code,ds:extradataextradata segment Num_Digit db 100,0,100dup(0) Num_Letter db 100,0,100dup(0) Num_Other db 100,0,100dup(0)extradata ends code segmentstart: mov ax,extradata mov ds,ax mov ax,0FFF0H mov ds,ax mov dx,0000H mov cx,100next: cmp al,0 jl Num_O cmp al,9 jle Num_D cmp al,A jl Num_O cmp al,z jle Num_L jmp Num_ONum_D: inc Num_Digit loop nextjmp outputNum_L: inc Num_Letter loop nextjmp outputNum_O: inc Num_Other loop nextoutput: lea dx,Num_Digit mov dl,Num_Digitadd dl,20h mov ah,02 int 21h lea dx,Num_Letter mov dl,Num_Letteradd dl,20h mov ah,02 int 21h lea dx,Num_Other mov dl,Num_Otheradd dl,20h mov ah,02 int 21h mov ah,4ch int 21hcode ends end start实验十二:编写程序将string区中的所有数字字符删除掉。一、 实验目的1. 掌握汇编语言程序的开发方法和过程;2. 掌握汇编语言程序设计中数据分类统计的基本方法。二、 实验原理在输出string区中的数据时屏蔽数字字符,只将非数字字符输出。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,将数据段string区中的数字字符删除掉。源程序清单:实验12.asm实验12.obj实验12.exeassume cs:code,ds:datadata segment string db 100 dup(?) string1 db Please input a string:$ string2 db The answer is:$data endscode segmentstart: mov ax,data mov ds,ax lea dx,string1 mov ah,09 lea si,string int 21h mov ah,01 next: int 21h cmp al,13 jz done cmp al,0 jl noop cmp al,9 jg noop jmp nextnoop: mov si,al inc si jmp nextdone: mov ah,02 mov dl,13 int 21h mov dl,10 int 21h lea dx,string2 mov ah,09 int 21h mov byte ptr si,$ mov ah,09 lea dx,string int 21h mov ah,4ch int 21hcode ends end start实验十四:口令校对。一、 实验目的1. 进一步熟悉汇编语言程序的开发方法和过程;2. 掌握汇编语言程序设计中字符串搜索的基本方法。二、 实验原理通过REPE CMPSB指令将输入的密码与设定的密码进行比较,相同则进入,否则退出再次输入。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 口令校对:程序执行后给出操作提示,例如“Please input the password:”等待用户输入密码与内定的字符串进行比较。当连续输入3次错误时退出。流程(流程框图)源程序清单:实验14.asm实验14.obj实验14.exedata segment pass db 1314520 buf db 8 ; 最多接收的字节数 db 0 ;实际输入的字节数 db 8 dup(?) ;接收的字符,末尾放回车 msgw db 0dh,0ah,Please input the password:$ msgo db 0dh,0ah,Welcome to use!$ msgf db 0dh,0ah,Password error!$data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov bx,3here: cmp bx,1 js done lea si,pass lea dx,msgw mov ah,09 int 21h lea dx,buf mov ah,0ah int 21h mov cx,7 ;循环次数 lea di,buf+2 ;DI指向接收的串首地址again: mov al,si cmp al,byte ptrdi jne f inc si ;下一密码 inc di ;下一数据 loop again lea dx,msgo mov ah,09 int 21h jmp donef: lea dx,msgf mov ah,09 int 21h dec bx jmp heredone: mov ah,4ch int 21hcode ends end start实验十五:用子程序判断素数一、 实验目的1. 掌握汇编语言程序的开发方法和过程2掌握如何用子程序判断素数二、实验原理输入数后将其分别与2到其本身的数进行相除,然后判断其余数,若余数不为零,则除数加一,否则再判断商是否为一,若是,表明其除到本身了,则其为素数,否则否则不是素数。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,判定某正整数N是否为素数。若为素数,则在显示器上显示结果信息;否则输出标志“-1”。源程序清单:实验15.asm实验15.obj实验15.exedata segment buf db -1$ string db true$ str1 db Please input a number:$data endscode segment assume cs:code,ds:datamain proc farrepeat: mov ax,data mov ds,ax mov ah,09 lea dx,str1 int 21h call decibin call crlf call binihex call crlf jmp repeatmain endpdecibin proc near mov bx,0newchar: mov ah,01 int 21h sub al,30h jl exit cbw xchg ax,bx mov cx,10d mul cx xchg ax,bx add bx,ax jmp newcharexit: retdecibin endpbinihex proc near mov cl,2again: mov ax,bx div cl cmp ah,0 jz printf1 inc cl jmp againprintf1: cmp al,1 jz printf2 lea dx,buf mov ah,09 int 21h jmp doneprintf2: mov ah,09 lea dx,string int 21h jmp donedone: mov ah,4ch int 21h retbinihex endpcrlf proc near mov dl,0dh mov ah,02 int 21h mov dl,0ah mov ah,02h int 21h retcrlf endpcode ends end main实验十六:在指定窗口输入字符。一、 实验目的掌握宏指令的调用。二、 实验原理通过宏指令调用在开辟出的窗口中,调用BIOS系统调用中的(INT 10H)中的06H号功能进行上卷。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 在指定窗口内输入字符。1.实验要求学习并掌握宏的使用,完成一个在指定的窗口内输入字符的宏的编码,并编写相应的程序对宏的调用,并将结果显示出来。(1).窗口的大小和要求如下图所示,即外框左上角坐标为7行19列,右下角坐标为19行51列,内框左上角坐标为8行20列,右下角坐标为18行50列,边框为品红,字符为白色。(2).程序运行后,光标定位于18行20列处,等待输入。当输入满30个字符,则自动上卷一行,光标仍然回到开始位置,窗口最高一行向上卷动后消失。流程(流程框图)源程序清单:实验16.asm实验16.obj实验16.exebackground macro a1,a2,a3,a4,a5,a6 mov al,a1 mov bh,a2 mov ch,a3 mov cl,a4 mov dh,a5 mov dl,a6 mov ah,06 int 10h endmasdf macro b1,b2,b3 mov bh,b1 mov dh,b2 mov dl,b3 mov ah,02 int 10h endmassume cs:code,ds:datadata segmentdata endscode segmentstart: mov ax,data mov ds,ax background 0,50h,7,19,19,51 background 0,2fh,8,20,18,50cinin: asdf 0,18,20 mov cx,30again: mov ah,01 int 21h cmp al,1bh ;ESC退出 je done cmp al,0dh je next loop againnext: background 1,2fh,8,20,18,50 jmp cinindone: mov ah,4ch int 21hcode ends end start实验十七:编写程序显示蓝屏。一、 实验目的掌握BIOS系统功能调用方法。二、 实验原理通过调用(int 10h)功能表里的)06h号功能,用蓝屏进行清屏。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序显示蓝屏。流程(流程框图)源程序清单:实验17.asm实验17.obj实验17.exeassume cs:codecode segmentstart: mov ah,0 mov al,3 int 10h mov ah,06 mov al,0 mov bh,1fh mov ch,0 mov cl,0 mov dh,24 mov dl,79 int 10hcode ends end start实验十八:编写程序调用BIOS功能,是程序运行后屏幕清屏为黑色,按任意键后显示个“I LOVE YOU”并闪烁,按ESC健退出。一、 实验目的掌握BIOS系统功能调用方法。二、 实验原理通过调用(INT 10H)功能表里的06H号功能,实现彩色字符串的输出。三、 实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序调用bios功能,使程序运行后屏幕清屏为黑色,按任意键(自己设定)后显示五个“I LOVE YOU”并闪烁,按ESC键退出程序。流程(流程框图)源程序清单:实验18.asm实验18.obj实验18.exedata segment buf db I LOVE YOU FOREVERdata endsstack segment dw 100 dup(?)stack endscode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备防雷安全管理制度
- 2025年中国加湿风扇行业市场全景分析及前景机遇研判报告
- 设计文件收发管理制度
- 诊所升级健康管理制度
- 诊所诊疗规范管理制度
- 豪宅装修团队管理制度
- 财厅办公用品管理制度
- 账务代理公司管理制度
- 货品流程制度管理制度
- 货车司机闭环管理制度
- 八年级历史下册核心知识点、难点、重点总结
- (高清版)JTGT D81-2017 公路交通安全设施设计细则
- 2023-2024全国初中物理竞赛试题-杠杆(解析版)
- 新概念马学智慧树知到期末考试答案章节答案2024年内蒙古农业大学
- 《临床试验生物样本伦理管理指南(征求意见稿)》
- (正式版)SHT 3551-2024 石油化工仪表工程施工及验收规范
- 乳腺癌患者术后心理护理
- 国际货运代理实务 全套课件
- 国家开放大学《Python语言基础》形考任务4参考答案
- 中学生心理健康诊断测验(MHT)
- 人力资源薪酬专员个人月工作计划
评论
0/150
提交评论