楼主给出的程序,是错误的。
大于零,小于零,不能用零来比较判断。
必须用符号位来判断。
正确程序如下:
MOV FUNC, #-1 ;先假设是负数 MOV A, VAR JB ACC.7, _END;符号位为1即转到结束 JZ L0 ;为零转移 INC FUNC ;为正数就往下加两次一L0: INC FUNC_END: RET