📜  在说明后注册内容和标记状态

📅  最后修改于: 2021-06-28 16:56:29             🧑  作者: Mango

基本上,您会得到一组指令以及8085微处理器的寄存器和标志的初始内容。您必须在每条指令后找到寄存器的内容和标志状态。

原来,

以下是说明集:

SUB A
MOV B, A
DCR B
INR B
SUI 01H
HLT 

假设:
每条指令将使用前一条指令的结果进行寄存器。以下是每条指令的说明,其中包含寄存器内容和标志状态:

  • 指令一:
    SUB一条指令将减去累加器本身的内容。它用于清除累加器的内容。完成此操作后,寄存器和标志的内容将如下图所示。

  • 指令2:
    MOV B,A会将内容从源寄存器(A)复制到目标寄存器(B)。由于它是数据传输指令,因此它不会影响任何标志。完成此操作后,寄存器和标志的内容将如下图所示。

  • 指令3:
    DCR B会将寄存器B的内容减少1。DCR操作不会影响进位标志(CY)。
    B-00H 0 0 0 0  0 0 0 0 

    对于DCR B,采用01H的2的补码,01H的2的补码:

    0 0 0 0  0 0 0 1
     1 1 1 1  1 1 1 0  (1's complement)
                  + 1
    ------------------
     1 1 1 1  1 1 1 1 
    ------------------ 
    
    +(00)  0 0 0 0  0 0 0 0 
    -----------------------
           1 1 1 1  1 1 1 1   
    ----------------------  

    (FFH)这将是B的内容。因此,执行此操作后,寄存器和标志的内容将如下图所示。

  • 指令4:
    INR B将使寄存器B的内容增加1。INR操作不影响进位标志(CY)。

    B(FFH)     
            1 1 1 1  1 1 1 1 
    +(01)   0 0 0 0  0 0 0 1 
           ------------------
    CY=1    0 0 0 0  0 0 0 0  
           ------------------ 

    (0 0 0 0 0 0 0 0 0)将是寄存器B的内容。因此,执行此操作后,寄存器和标志的内容将如下图所示。

  • 指令5:
    SUI 01H将从累加器的内容中减去01H并将结果存储在累加器中。
    A-00H  0 0 0 0  0 0 0 0 

    对于SUI 01H,采用01H的2的补码,01H的2的补码:

    0 0 0 0  0 0 0 1
           1 1 1 1  1 1 1 0  (1's complement)
                        + 1
          ------------------
           1 1 1 1  1 1 1 1 
          ------------------ 
    +(00)  0 0 0 0  0 0 0 0   (Content of the accumulator)
        -----------------------
           1 1 1 1  1 1 1 1   

    (FFH)将存储在累加器中。完成此操作后,寄存器和标志的内容将如下图所示。

    HLT将终止程序的执行。