《微机原理及应用》实验报告.doc
文本预览下载声明
中国石油大学(华东)现代远程教育
实验报告
课程名称:微机原理及应用
实验名称:循环程序设计
实验形式:在线模拟+现场实践
提交形式:在线提交实验报告
学生姓名: 褚东 学 号:1796414800002
年级专业层次:17电气自动化技术 高起专
学习中心: 山东枣庄函授站(新)
提交时间: 2018 年 7月 10 日
一、实验目的
1.掌握单重循环及多重循环的程序设计方法;?
2.学会针对不同的问题,选用不同的组织循环的方法;?
3.进一步熟悉利用DEBUG程序、CODEVIEW调试程序的方法,并检查和验证结果的正确性。
二 、实验内容
1. 已知字数组定义如下:ARRAY DW 12,78,55,4,125,96
MAX DW ?
编制程序求出该ARRAY数组中的最大数放入MAX单元。
data segment
array dw 12,78,55,4,125,96
max dw ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov si,0
mov ax,array[si]
mov cx,5
again:
add si,2
dec cx
jcxz exit
cmp ax,array[si]
ja again
mov ax,array[si]
jmp again
exit:
mov max,ax
mov ah,02h
int 21h
mov ah,4ch
int 21h
code ends
end start
2. 预留字符串口令,输入口令串与预留密码串比较。若匹配则显示“MATCH!CONGRATULATION”,否则显示“NOMATCH!”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输入密码皆错,给出相应的提示信息,程序退出。
data segment
password db 123456
input db 20,?,20 dup(?)
count equ 6
str1 db 0dh,0ah,match!congratulation$
str2 db 0dh,0ah,no match!please input again:$
str3 db 0dh,0ah,please intout you password:$
str4 db 0dh,0ah,wrong 3 times,program will be over$
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov di,3
begin:
dec di
lea dx,str3
mov ah,09h
int 21h
lea dx,input
mov ah,0ah
int 21h
mov si,0
mov al,input[si+1]
cmp al,count
jnz output1
mov si,0
mov cx,count
again:
mov al,password[si]
mov bl,input[si+2]
cmp al,bl
jnz output1
inc si
loop again
jmp output2
output1:
lea dx,str2
mov ah,09
int 21h
cmp di,0
jnz begin
jmp aa
output2:
lea dx,str1
mov ah,09
int 21h
jmp exit
aa:
lea dx,str4
mov ah,09
int 21h
mov ax,9999h
a:
mov cx,9999h
b:
loop b
dec ax
jnz a
exit:
mov ah,4ch
int 21h
code ends
end start
3.有一个首地址为NUM的N字无序无符号整数数组,编制程序采用选择排序法使该数组中的数按照从小到大的次序排序输出。
data segment
array dw 22,31,10,5,1,66,136,99
data ends
code segment
main proc far
assume cs:code,ds:da
显示全部