简答题

某场歌手赛,共有10个评委,试编写一程序,输入10个评分,去掉最高分和最低分,求平均分(均为BCD码)。

正确答案

O.RG 0H
N.EQU #5
B.LOCK EQU #30H
I.SELSORT: MOV R7,N
D.EC R7
M.OV R1,BLOCK
I.SST1: MOV R0,BLOCK
M.OV A,R7
M.OV R6,A
M.OV A,@R0
M.OV B,A
I.SST2: INC R1
M.OV A,@R1
C.LR C
S.UBB A,B
J.C ISST3
M.OV A,@R1
M.OV R2,A
M.OV B,@R1
I.SST3: DJNZ R6,ISST2
M.OV A,B
X.CH A,@R1
M.OV B,R2
M.OV @R1,B  MOV @R1,A
D.JNZ R7,ISST1
M.OV R0,BLOCK
M.OV @R0,#0 ;去掉最低分
M.OV A,BLOCK
ADD A,#9  
MOV R0,A 
MOV @R0,#0 ;去掉最高分 
AD: MOV R0,BLOCK  
INC RO  
MOV R1,#8  
CLR A  
CLR C  
MOV B,#0 
ADL: ADD A,@R0  
DA A 
MOV R2,A  
ADDC A,#0 
MOV B,A  
MOV A,R2  
DJNZ R1,ADL  
MOV R5,0  
MOV R4,B  
MOV R3,A  
MOV R2,#0  
MOV R1,#8 
R5R4R3/R2R1 = R4R3  
MOV R1,#00H  
MOV R2,#0FH  
MOV R3,#04H  
MOV R4,#05H  
MOV R5,#06H  
LCALL _DIV  
AJMP $ 
_DIV: ;{  
CLR C  
MOV 30H,#0  
MOV 31H,#0  
MOV 32H,#0 
_DIV_LOOP: CLR C  
MOV A,R3  
SUBB A,R1 
MOV R3,A  
MOV A,R4  
SUBB A,R2  
MOV R4,A  
MOV A,R5 
SUBB A,#0  
MOV R5,A  
JC _DIV_END 
_INC_SHANG: CLR C  
MOV A,30H  
ADDC A,#1  
MOV 30H,A 
MOV A,31H  
ADDC A,#0  
MOV 31H,A 
MOV A,32H  
ADDC A,#0  
MOV 32H,A  
LJMP _DIV_LOOP 
_DIV_END: CLR C 
MOV A,R1  
ADDC A,R3  
MOV A,R2  
ADDC A,R4  
MOV R3,30H  
MOV R4,31H  
END 

答案解析

相似试题
  • 有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算)。

    简答题查看答案

  • 有一篇文章,共有5行文字,每行有6个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。要求利用指针编写程序。

    简答题查看答案

  • 试编写一程序片段,实现BL高4位与低4位相互交换

    简答题查看答案

  • 有一个阅览室,共有100个座位,读者进入时必须先在一张登记表上登记,该表为每一座位列一表目,包括座号和读者姓名等,读者离开时要消掉登记的信息,试问:  (1)为描述读者的动作,应编写几个程序,设置几个进程?  (2)试用PV操作描述读者进程之间的同步关系。

    简答题查看答案

  • 试编写一完整程序,实现88242567H与0A435C218H两个32位无符号数相加的功能。(要求编写完整源程序,含程序框架)

    简答题查看答案

  • 试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/2的功能(AX中的数据理解为补码)

    简答题查看答案

  • 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。

    简答题查看答案

  • 以下程序的功能是根据10个评委所给的分数,计算并填写“最后得分”字段,具体计算方法是去掉一个最高分、去掉一个最低分,再对其余得分求平均。请填空:

    简答题查看答案

  • 有10个硬盘,有两个重要的属性:价格和容量。编写一个应用程序,分别按照价格和容量排序并输出10个硬盘的相应信息。

    简答题查看答案