微机原理及其应用大作业(3个问题)—基于emu8086编程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MOV AX,DATA MOV DS,AX LEA DX,S;输入 MOV AH,0AH INT 21H
MOV BX,29 MOV CX,BX;设置循环次数 XH1: MOV SI,2;变址寻址 XH2: MOV AL,S[SI] CMP AL,S[SI+1] JBE NEXT;前者<=后者,转移后继续循环
› 试求出各班队员的平均成绩与最好成绩,并求出两班最好成 绩的和。
› 试用子程序法,编制该程序的流程图,并编写出源程序。 (3分)
开始
输入两 班成绩
调用平均 值子程序
调用最大 值子程序
求两班最 好成绩之

结束
DATA SEGMENT
A
DB 45,42,50,59,46,52
AAV DW 0
AMAX DB 0
DATA SEGMENT DAT DB 95,68,68,90,89,66,85,74,78,46,99,79 COUNT DB 5 DUP(0)
DATA ENDS COSEG SEGMENT
ASSUME CS:COSEG,DS:DATA START:MOV AX,DATA
MOV DS,AX MOV CX,12;循环控制12次 LEA BX,DAT;设置缓冲区指针 XOR DL,DL;统计计数器清零 BJ: MOV AL,[BX];取数据 CMP AL,90;作比较 JGE XB1;>=90,转移 CMP AL,80 JGE XB2;>=80,转移 CMP AL,70 JGE XB3;>=70,转移 CMP AL,60 JGE XB4;>=60,转移 JMP XB5;<60,转移
XB1:INC BX INC COUNT LOOP BJ JMP LAST;循环结束后转移至最后
XB2:INC BX INC COUNT+1 LOOP BJ JMP LAST;循环结束后转移至最后
XB3:INC BX INC COUNT+2 LOOP BJ JMP LAST;循环结束后转移至最后
XB4:INC BX INC COUNT+3 LOOP BJ JMP LAST;循环结束后转移至最后
MOV AX,4C00H;终止 INT 21H CODE ENDS END START
THANKS
CMP MAX, AL
JB X3
;MAX小于AL时跳转X3
LOOP X2
;CX≠0时跳转X2
JMP LAST ;CX=0时跳转至LAST
X3: MOV MAX,AL ;将AL值赋予MAX
LOOP X2
;CX≠0时跳转至X2
问题三
3、实现键盘随机输入大小写英文字母30个,输入后,将输入 字母按大、小写且按英文字母的顺序进行排序,排序后在显 视器上进行显示。(5分)
XB5:INC BX INC COUNT+4 LOOP BJ
LAST:MOV AX,4C00H INT 21H
COSEG ENDS END START
问题二
› 2、两个班级进行标枪竞赛,每班6名队员。甲班成绩为: 45,42,50,59,46,52(米),乙班成绩为:28 H, 29H,32H,29 H,42H,25H(米)。
;求平均值
LAST: MOV AL,MAX ;将MAX值赋予AL POPF POP CX RET
MAXZ ENDP COSEG ENDS
END START
MAXZ PROC
;入口参数为BX,出口参数为AX
PUSH CX
;保护CX
PUSHF
;保护寄存器
MOV AX,0
X2: MOV AL,[BX]
INC BX
开始
随机输入30 个大小写英
文字母
将30个字母 进行冒泡排

在显示屏上 换行显示
结束
DATA SEGMENT S DB 31 DB 0 DB 31 DUP(0) NC DB 0AH,0DH,'$'
DATA ENDS CODE SEGMENT
ASSUME DS:DATA,CS:CODE START:
微机原理大作业
XXX11111
问题一
1、已知DAT单元开始存放一组某团队12人的期中大作业成绩 字节数据,数据为95、68、68、90、89、66、85、74、78、 46、99、79。现对这一组成绩数据进行分类统计人数,分类 统计为五级:≥90,80≤且﹤90,70≤且﹤80,60≤且﹤70 及﹤60,统计结果分别对应存放在COUNT连续的5个字节单 元。试编制该程序流程图,并编写出源程序。(2分)
B
DB 28H,29H,32H,29H,42H,25H
BAV DW 0
BMAX DB 0
AV
DW 0
MAX
DB 0
DATA ENDS
COSEG SEGMENT
ASSUME CS:COSEG, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,0
MOV CL,6 ;循环次数为6次
AVZ PROC
;入口参数为BX,出口参数为AX
PUSH CX
Hale Waihona Puke ;保护CXPUSHF
;保护寄存器
MOV AX,0
MOV AV,0
X1: MOV AL,[BX]
INC BX
ADD AV,AX ;累加
LOOP X1
MOV AX,AV MOV DL,6 DIV DL POPF POP CX RET
AVZ ENDP
XCHG AL,S[SI+1];否者交换内存位置 MOV S[SI],AL
NEXT: INC SI LOOP XH2 DEC BX MOV CX,BX CMP CX,0 JA XH1;循环数BX>0,继续循环
LEA DX,NC;换行 MOV AH,9 INT 21H
LEA DX,S+2;输出 MOV AH,9 INT 21H
LEA BX,A ;取甲班数据首地址
CALL AVZ ;调用求均值程序
MOV AAV,AX ;将平均值赋给变量AAV
LEA BX,A
CALL MAXZ ;调用求最大值程序
MOV AMAX,AL ;将最大值赋给AMAX
LEA BX,B ;取乙班数据首地址 CALL AVZ MOV BAV,AX LEA BX,B CALL MAXZ MOV BMAX,AL MOV AX,0 ADD AL,AMAX ADD AL,BMAX MOV MAX,AL ;求甲班和乙班最好成绩之和 MOV AX,4C00H INT 21H
相关文档
最新文档