在内部RAM的BLOCK开始的单元中有一无符号数据块,数据长度为LEN。试编程求其中最大的数并存入MAX中。
正确答案:
M.CS51
1 ORG 0H
2 LEN EQU #10 ;数据块长度
3 MAX EQU #40H
0000 7830 4 MOV R0,#30H ; BLOCK首地址
0002 790A 5 MOV R1,LEN
0004 19 6 DEC R1 ; 循环次数
0005 C3 7 CLR C
0006 E6 8 LOOP: MOV A,@R0
0007 08 9 INC R0
0008 96 10 SUBB A,@R0
0009 4002 11 JC EXCHANG
000B 8002 12 SJMP NEXT
000D 86F0 13 EXCHANG:// MOV B,@R0
000F C3 14 NEXT: CLR C
0010 D9F4 15 DJNZ R1,LOOP
0012 85F040 16
M.OV 40H,B ; MAX单元 17 END
1 ORG 0H
2 LEN EQU #10 ;数据块长度
3 MAX EQU #40H
0000 7830 4 MOV R0,#30H ; BLOCK首地址
0002 790A 5 MOV R1,LEN
0004 19 6 DEC R1 ; 循环次数
0005 C3 7 CLR C
0006 E6 8 LOOP: MOV A,@R0
0007 08 9 INC R0
0008 96 10 SUBB A,@R0
0009 4002 11 JC EXCHANG
000B 8002 12 SJMP NEXT
000D 86F0 13 EXCHANG:// MOV B,@R0
000F C3 14 NEXT: CLR C
0010 D9F4 15 DJNZ R1,LOOP
0012 85F040 16
M.OV 40H,B ; MAX单元 17 END
答案解析:有

微信扫一扫手机做题