51单片机汇编语言问题

内部存储器20H开始存有ASCII码数据,以字符'$'结束。试编制程序查找其中是否有字符串'ab',并做如下处理:如果找到字符串'ab',则在寄存器B中存放字符串'ab'所在的位置(距20H的字节数),如果没有找到字符串'ab',则在寄存器B中存入0FFH。

第1个回答  2018-03-23
SCHAB:
    MOV R0,#20H
    MOV R2,#0
SCHAB1:
    MOV A,@R0
    CJNE A,#'$',SCHAB2
    SJMP SCHABE
SCHAB2:
    CJNE A,#'a',SCHAB3
    INC R0
    MOV A,@R0
    CJNE A,#'B',SCHAB4
    DEC R0
    MOV R2,#1
    SJMP SCHABE
SCHAB3:
    INC R0
SCHAB4:
    SJMP SCHAB1
SCHABE:
    MOV A,R2
    JNZ SCHABEE
    MOV B,#0FFH
    RET
SCHABEE:
    MOV A,R0
    CLR C
    SUBB A,#20H
    MOV B,A
    RET

本回答被提问者和网友采纳
相似回答