【问题标题】:How can i compare two port bits if they are equal ,greater than or smaller than each other?如果它们相等,大于或小于彼此,我如何比较两个端口位?
【发布时间】:2016-04-28 06:31:16
【问题描述】:

我正在研究 8051 汇编器,我想知道一个命令,它可以帮助我比较两个端口位并确定它们是否相等,所以我搜索它,发现 CJNE 可能有用并尝试过将其放入程序中,如下所示...我不确定我是否走在正确的道路上,也许 Xnor 命令会更好,但我找不到它,并且由于某种原因我无法对其进行测试。

 ORG 00H
 MOV R0 ,#01H
 MOV R1, #00H
 CJNE  R0,#00H,LOOP
 LOOP: MOV C, P1.0
 ANL C,P3.0
 MOV P2.0,C 
 SJMP LOOP
 END     

如果我想知道一个端口位是大于还是小于另一个,我可以使用 ANL 命令吗??

【问题讨论】:

    标签: assembly 8051


    【解决方案1】:

    不是 8051 的专家,但在比较之后,如果相等(分支 EQ 或 NE)则设置零标志,如果大于则设置进位标志(CS 或 CC 用于设置或清除)。在 CJNE 之后(如果不相等则比较并跳转),然后您可以使用 JC [进位集的目标 - 即 >] 检查进位标志。无需进行第二次比较 - 标志仍会从第一次设置。

    CJNE  R0,#00H,NOTEQUAL
    ; equal code goes here, then branch out
    NOTEQUAL:
    JC GREATER
    ; less than code goes here, then branch out
    GREATER:
    ; greater code goes here
    

    JNC 是未设置进位标志的指令 - 即它小于或等于但你已经消除了 equal 所以它会小于。

    【讨论】:

      【解决方案2】:

      这是一种方法。它绝不是循环或代码有效的,但它可以满足您的要求。

      假设您想比较 P1.0 和 P2.0 是否与以下结果相等。 (P3.0、P3.1、P3.2为结果指标)

      P1.0 = P2.0,设置 P3.0 否则清零

      P1.0 > P2.0,设置 P3.1 否则清零

      P1.0 = P2.0 = 0,设置 P3.2 否则清零

          org 00H
      
          MOV    P3DIR, #0x00   ; Set direction of P3...
      
      Start:
          JB    P1.0,   P1Set
          JB    P2.0,   P1NotSetP2Set
          SJMP  None
      P1Set:
          JB    P2.0,   P1SetP2Set
          SJMP  P1SetP2NotSet
      P1SetP2Set:
          SETB  P3.0
          CLRB  P3.1
          CLRB  P3.2
          SJMP  Start
      P1SetP2NotSet:
          CLR   P3.0
          SETB  P3.1
          CLR   P3.2
          SJMP  Start
      P1NotSetP2Set:
          CLR   P3.0
          CLR   P3.1
          CLR   P3.2
          SJMP  Start
      None:
          SETB  P3.0
          CLR   P3.1
          SETB  P3.1
          SJMP  Start
      
          end
      

      【讨论】:

        猜你喜欢
        • 2015-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-20
        • 1970-01-01
        • 2013-08-30
        • 1970-01-01
        • 2014-08-28
        相关资源
        最近更新 更多