查找相同数个数实验【精品文档-doc】
实验八 查找相同数个数实验
一、实验目的
熟悉汇编语言编程。
二、实验
在7000H,700FH中查出有几个字节是零,统计“00 ”的个数
并送显示缓冲区。
三、实验程序框图
开始
字节数送R0,查找字节送R1
Y 相同否, R1+1
N
DPTR+1
N 字节数到吗,
Y
R1送显示缓冲区
调显示子程序
2、参考程序:
FIND: MOV SP,#60H
MOV R0,#10H
MOV R1,#00H
MOV DPTR,#7000H
MOVX A,@DPTR FIND1:
CJNE A,#00H,FIND2
INC R1
FIND2: INC DPTR
DJNZ R0,FIND1
MOV A,R1
MOV R0,#79H
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,R1
SWAP A
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,#10H
MOV R4,#04H
FIND3: MOV @R0,A
INC R0
DJNZ R4,FIND3 FIND4: LCALL DISP
SJMP FIND4
DISP: SETB 0D4H
MOV R1,#7EH
MOV R2,#20H
MOV R3,#00H
DISP1: MOV DPTR,#0FF21H
MOV A,R2
MOVX @DPTR,A
MOV DPTR,#DATA1
MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0FF22H
MOVX @DPTR,A
DISP2: DJNZ R3,DISP2
DEC R1
CLR C
MOV A,R2
RRC A
MOV R2,A
JNZ DISP1
MOV A,#0FFH
MOV DPTR,#0FF22H
MOVX @DPTR,A
CLR 0D4H
RET
DATA1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
END
四、调试
用单步运行,分别看R0,R1,DPTR单元中内容是否与程序一致。
五(思考 要查找30-3F单元中的相同数个数的程序怎样编号。