生成20个20~50的随机数,存放于对象X3中,并实现以下功能:
(1)设计子程序fun_aver,统计上述20个数的最小值存于min单元。
(2)设计子程序fun_sort,将上述数组升序排列。
(3)设计子程序fun_filter,将与min绝对值差10以内的数,存到对象X4中。

ARM 排序题 生成20个20~50的随机数
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- m0_65592162 2021-12-20 21:02关注
AREA SGQ,CODE,READONLY
IMPORT randomnumber
CODE32
ENTRY
NUM EQU 20
MIN EQU 20
MAX EQU 50LDR R3,=NUM LDR R4,=SRC
LOOP
BL randomnumber
MOV R0,R0,LSR #24
CMP R0,#MIN
BLO LOOP
CMP R0,#MAX
BHS LOOP
TST R0,#0X01
BEQ LOOP
STRB R0,[R4],#1
SUBS R3,R3,#1
BNE LOOPBL fun_aver BL fun_sort BL fun_filter
stop
B stopfun_aver
LDR R4,=SRC
LDR R3,=NUM
LOOP1
SUB R3,R3,#1
MOV R5,R3
LDR R4,=SRC
LOOP2
LDRB R6,[R4],#1
LDRB R7,[R4]
CMP R6,R7
STRHSB R6,[R4]
SUBHS R4,R4,#1
STRHSB R7,[R4],#1
SUB R5,R5,#1
CMP R5,#0
BNE LOOP2
CMP R3,#1
BNE LOOP1
MOV PC,LRfun_sort
LDR R4,=SRC
LDR R3,=NUM
LDR R5,=min
LDRB R7,[R4]
STRB R7,[R5]
MOV PC,LRfun_filter
LDR R4,=X3
LDR R3,=NUM
LDR R5,=X4
LDR R6,=min
LDRB R6,[R6]
LOP
SUBS R3,R3,#1
BEQ LOP1
LDRB R8,[R4],#1
SUB R7,R6,R8
CMP R7,#10
BGT LOP
STRB R8,[R5],#1
B LOP
SUB R7,R8,R6
CMP R7,#10
BGT LOP
STRB R8,[R5],#1
B LOP
LOP1
MOV PC,LRmin
DCB 0
X4
SPACE 100
SRC
SPACE 100
END本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1