《汇编语言实验5-循环程序设计(共10页).doc》由会员分享,可在线阅读,更多相关《汇编语言实验5-循环程序设计(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上汇 编 语 言 实 验 报 告Assembly Language Programming LabReports_班级: _ 姓名:_ 学号:_ 实验日期:_学院: _计算机与通信工程学院_ 专业:_计算机科学与技术_实验顺序:_实验五_ 实验名称:_循环程序设计_ 实验分数:_ 考评日期:_ 指导教师: _1 实验目的1、 掌握两种循环结构,DO WHILE的循环结构用CMP指令和条件转移指令构成。DO UNTIL用loop,loope,loopne这三种指令实现。2、 掌握以下指令 掌握循环指令,loop,loope,loopne。 掌握串处理指令,movs,cmp
2、s,scas,lods,stos 以及和他们联合使用的重复前缀指令rep,repz,repnz。 掌握伪指令 EQU 及操作符 $的使用。 掌握cmp,test和条件转移指令构成的循环结构。3、 掌握循环程序的设计过程,写出设计方法,给出程序框图,写出循环程序。4、 掌握多重循环中,可以由内层循环向外层循环跳转,或者直接向外层程序跳转,但是不允许从外向内跳转。5、会用循环实现排序算法。_2 实验环境操作系统:windows xp编译程序:masm 5.0_3 实验原理1、 loop指令循环2、二层、三层循环嵌套_4 实验步骤及结果分析1.简单的循环程序。(1)写出y=5!的程序段。data s
3、egment info db The 5!=$ t db ABCDEFdata endsstack segment db 512 dup(?)stack endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,512 mov dx,offset info mov ah,9 int 21h mov cx,4 mov al,1 mov bl,2 x: mul bl inc bl loop x mov cx,4 y: push cx mov cl,4 rol ax
4、,cl mov si,ax and ax,0fh mov bx,ax mov dl,tbx mov ah,2 int 21h mov ax,si pop cx loop y mov ah,4ch int 21hcode endsend start运行截图:(2)在程序为N的字节数组value中取出第一个负数存在BL中。 代码见6-1.asm和6-2.asmdata segment info db The ID of th first negative number is:$ t db ABCDEF t1 db 1,3,5,7,-9,11,-13,15 count equ $-t1data en
5、dsstack segment db 512 dup(?)stack endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,512 mov dx,offset info mov ah,9 int 21h mov cx,count mov bx,0 x: mov al,t1bx inc bx and al,b loopz x dec bx mov ax,bx mov cx,4 y: push cx mov cl,4 rol ax,cl mov si,ax a
6、nd ax,0fh mov bx,ax mov dl,tbx mov ah,2 int 21h mov ax,si pop cx loop y mov ah,4ch int 21hcode endsend start运行截图:2.串处理程序(1) 查找CATI表中的字符,找到后将其保存到SIGN单元,其位置值保存到ADDI单元。data segment value dw 1,2,3,4,5,6,7,8,9data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov ax,value4 mov ah,4ch
7、 int 21hcode endsend start运行截图:(2) 在长度为N的字数组VALUE中取出第3个数保存到AX中。data segment value dw 1,2,3,4,5,6,7,8,9data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov ax,value4 mov ah,4ch int 21hcode endsend start运行截图:3.排序数组table中存放8个小写字母computer。编写程序,将它们按降序排序。data segment t db computer c
8、ount equ $-tdata endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov cx,count dec cx bubble: push cx mov bx,0 change: mov al,tbx cmp al,tbx+1 jae next xchg al,tbx+1 mov tbx,al next: inc bx loop change pop cx loop bubble mov ah,4ch int 21hcode endsend start运行截图: 4.综合练习(1)上课练习题目分别统计
9、3个班级中某科成绩优秀的人数和不及格的人数。 data segment a db 62,93,56,91,34,87,92,51 db 93,72,84,52,99,48,83,76 db 46,81,92,83,84,68,53,88 m dw 3 n dw 8 max db 3 dup(0) min db 3 dup(0)data endscode segmentassume cs:code,ds:datastart: mov ax,data mov ds,ax mov cx,m mov bx,0 mov si,0 x: push cx mov cx,n y: mov al,abx cmp al,90 jae let1 cmp al,60 jae let2 inc minsi jmp let2 let1: inc maxsi let2: inc bx loop y inc si pop cx loop x mov ah,4ch int 21hcode endsend start运行截图:_5 实验心得疑问建议通过本次汇编试验,掌握了循环程序设计的基本方法,同时了解了loop指令的使用方法。专心-专注-专业
限制150内