MOV A,#0FFH ; 相等,则准备好要赋的标志值 0FFH
SJMP DOWN ; 转存到保存结果处
NEXT: INC R0 ; 修改地址指针
CJNE R0,#42H,CONT ; 若指针未越过终点,则继续
MOV A,#00H ; 查找失败,则将 00H存入结果标志单元
DOWN: MOV 50H,A ; 将比较结果标志存入 50H单元
SJMP $ ; 暂停
END
程序 2:
MOV R7,#16 ; 计数器赋初值,从 20H到 30H共 16 个字节
MOV R0,#32H ; 设地址指针初值
CONT: CJNE @R0,#0AAH,NEXT ; 比较查找值与指针所指单元的值, 不相
等转移
MOV A,#0FFH ; 相等,则准备好要赋的标志值 0FFH
SJMP DOWN ; 转存到保存结果处
NEXT: INC R0 ; 修改地址指针
DJNZ R7,CONT ; 计数器减 1,非 0,则继续
MOV A,#00H ; 查找失败,则将 00H存入结果标志单元
DOWN: MOV 50H,A ; 将比较结果标志存入 50H单元
SJMP $ ; 暂停
END
5.查找 20H~4FH单元中出现 00H的次数,并将查找结果存入 50H单元。
解:从 20H到 4FH共 48 个字节
MOV R7,#48 ; 字节计数器赋初值
MOV R0,#20H ; 设地址指针初值
CONT: CJNE @R0,#00H,NEXT ;比较查找值与指针所指单元的值,不相等转移
INC R6 ; 相等, 0 的个数计数器加 1
NEXT: INC R0 ; 修改地址指针
DJNZ R7,CONT ; 计数器减 1,非 0,则继续
MOV 50H,R6 ; 保存 O的个数计数值到 50H单元
SJMP $ ; 暂停
END END
6.已知 A=83H,R0=17H,(17H)=34H,写出下列程序段执行之后的 A 中的内容。
ANL A,#17H
ORL 17H,A
XRL A,@R0
CPL A
END
答:
ANL A,#17H ;A=03H
ORL 17H,A ;(17H)=0011 0100 ∨ 0000 0011=0011 0111
XRL A,@R0 ;A= 0000 0011 ∨ 0011 0111 =0011 0100
CPL A ;A=1100 1011