基本上,您会得到一组指令以及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将终止程序的执行。