This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What assumption does this code make? Is it acceptable?

This is a snippet from a general-purpose library function that is (effectively) non-application specific and, by design, can make no assumptions about the context of the calling process.

Hint: The assumption the code makes has to do with interrupts. Do you see a problem?

_GenericFunctionA:
    MOV   A, R7
    RL    A
    ADD   A, #array_base
    MOV   R0, A
    CLR   EA
    MOV   A, @R0
    JNB   ACC.BIT_X, ?C0026
    JNB   ACC.BIT_Y, ?C0026
    SETB  ACC.BIT_Z
?C0026:
    SETB  ACC.BIT_N
    XCH   A, @R0
    SETB  EA
    JB    ACC.BIT_N, ?C0027
    MOV   R7, #0
    RET
?C0027:
    MOV   R7, #1
    RET

0