在8085指令集中,特别是在其逻辑指令集中,我们具有AND,OR,XOR,NOT类型的指令。8085没有直接执行NAND,NOR,XNOR操作的指令。现在让我们讨论仅执行“或”运算的指令。
要对两个数进行“或”运算,8085施加了以下限制:必须将一个操作数保留在累加器中。另一个操作数可以位于以下任何可能的位置-
分类 | 例子 |
---|---|
另一个操作数可以保存在指令的8位立即数中。 | ORI 43H ORI FFH |
另一个8位操作数可以保留在一个存储单元中,并且其存储地址将由HL寄存器对指向。 | 欧拉 |
另一个8位操作数可以保存在8位寄存器中 | ORA B ORA C |
这是适用于ORing操作的8085指令集中可用的指令列表-
助记符,操作数 | 操作码(十六进制) | 字节数 |
---|---|---|
ORA A | B7 | 1 |
ORA B | B0 | 1 |
ORA C | B1 | 1 |
ORA D | B2 | 1 |
ORA E | B3 | 1 |
ORA F | B4 | 1 |
ORA G | B5 | 1 |
ORA H | B6 | 1 |
ORA DATA | F6 | 2 |
或运算执行两个操作数的按位或运算。如果X是累加器的一位,而Y是同一位置的另一个操作数的一位,则按照以下真值表执行“或”运算。
X | Y | X OR Y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
OR指令将影响标志寄存器位,如下所示:
根据结果更新S,P和Z标志
Cy和Ac标志重置为0