在外部RAM中BLOCK开始的单元中有一数据块,数据长度为LEN,试编程统计其中的正数、负数和零的个数分别存入内部RAM的Pcount、Mcoun和Zcount单元。
正确答案:
M.CS51
> 1 ORG 0H
2 LEN EQU #10 ; 数据块长度
3 PCOUNT EQU #30H
4 MCOUNT EQU #31H
5 ZCOUNT EQU #32H
6 BLOCK EQU #40H
0000 7840 7 MOV R0,BLOCK ; BLOCK首地址
0002 790A 8 MOV R1,LEN
0004 E6 9 LOOP: MOV A,@R0
0005 C3 10 CLR C
0006 B40004 11 CJNE A,#0H,SULT1
0009 0532 12 INC 32H
000B 8009 13 SJMP SULT2
000D 33 14 SULT1: RLC A; 移出符号位以判断正负!
000E 4004 15 JC NEG
0010 0530 16 INC 30H
0012 8002 17 SJMP SULT2
0014 0531 18 NEG:// INC 31H
0016 08 19 SULT2: INC R0
0017 D9EB 20 DJNZ R1,LOOP
> 1 ORG 0H
2 LEN EQU #10 ; 数据块长度
3 PCOUNT EQU #30H
4 MCOUNT EQU #31H
5 ZCOUNT EQU #32H
6 BLOCK EQU #40H
0000 7840 7 MOV R0,BLOCK ; BLOCK首地址
0002 790A 8 MOV R1,LEN
0004 E6 9 LOOP: MOV A,@R0
0005 C3 10 CLR C
0006 B40004 11 CJNE A,#0H,SULT1
0009 0532 12 INC 32H
000B 8009 13 SJMP SULT2
000D 33 14 SULT1: RLC A; 移出符号位以判断正负!
000E 4004 15 JC NEG
0010 0530 16 INC 30H
0012 8002 17 SJMP SULT2
0014 0531 18 NEG:// INC 31H
0016 08 19 SULT2: INC R0
0017 D9EB 20 DJNZ R1,LOOP
答案解析:有

微信扫一扫手机做题