用51单片机汇编语言编程,要求如下图:
;-------------------------------------------------------------
最佳答案(精彩回答):
先把R123的内容排序,正序倒序皆可,排完后,R2内容即为中值。
再把它存入R0,即可满足题目要求。
程序如下:
LCALL MID_LB
MOV A, R2
MOV R0, A
SJMP $
;-------------------------------------------------------------
MID_LB: ;中值滤波,把R1R2R3内容排序.
MOV A, R1
CLR C
SUBB A, R2 ;R1-R2
JC R_23 ;R1小则转移.
MOV A, R2 ;否则.
XCH A, R1 ;交换R1R2的内容.
MOV R2, A ;较大的值存到R2
R_23:
MOV A, R2
CLR C
SUBB A, R3 ;R2-R3
JC R_12 ;R2小则转移.
MOV A, R3 ;否则.
XCH A, R2 ;交换R2R3的内容.
MOV R3, A ;最大的值存到R3
R_12:
MOV A, R1
CLR C
SUBB A, R2 ;R1-R2
JC END_LB ;R1小则退出.
MOV A, R2 ;否则.
XCH A, R1 ;交换R1R2的内容.
MOV R2, A ;最小的值存到R1
END_LB:
RET
;-------------------------------------------------------------
END
;-------------------------------------------------------------
回答者: 做而论道 | 十四级 采纳率:43% 名人 达人
提问者对于答案的评价:高人啊
原题网址:http://zhidao.baidu.com/question/260093454.html
;-------------------------------------------------------------