问题–在8085中绘制给定指令的时序图,
INR M
指定寄存器/存储位置(M)中的内容加1,结果存储在同一位置。如果操作数是存储位置,则由HL对的内容指定。
例子:
INR M
Opcode: INR
Operand: M
M是内存位置(例如5000H),并且假设M(或5000H)处的数据为26H,需要将其递增1。十六进制代码34H
算法 –
指令INR M为1字节;因此,完整的指令将存储在单个存储器地址中。
例如:
2000: INR M
在前4个T状态下,操作码的提取与其他指令的提取相同。
在连续的T状态下,仅需要添加“内存读取”和“内存写入”即可。
对于操作码提取,IO / M(低有效)= 0,S1 = 1和S0 = 1。
对于存储器,读取IO / M(低电平有效)= 0,S1 = 1和S0 =0。而且,仅需要3个T状态。
对于存储器写入,将需要IO / M(低有效)= 0,S1 = 0以及S0 = 1和3 T状态。
INR M指令的时序图如下所示:
在操作码提取(t1-t4 T状态)中–
- 00:存储操作码的地址的低位,即00
- 20:存储操作码的地址的高位,即20。
- ALE:为多路复用地址和数据总线提供信号。仅在t1中,它用作地址总线以获取地址的低位,否则它将用作数据总线。
- RD(低有效): t1和t4中的信号为1,因为微处理器未读取任何数据。在t2和t3中,信号为0,因为此处数据是由微处理器读取的。
- WR(低有效):信号始终为1,微处理器不写入任何数据。
- IO / M(低有效):整个信号为0,因为该操作在内存上执行。
- S0和S1:在获取操作码的情况下均为1。
在内存中读取(t5-t7 T状态)–
- 00:存储操作码的地址的低位,即00
- 50:存储操作码的地址的高位,即50。
- ALE:为多路复用地址和数据总线提供信号。仅在t5中,它用作地址总线以获取地址的低位,否则它将用作数据总线。
- RD(低有效): t5中的信号为1,微处理器未读取任何数据。在t6和t7中,信号为0,微处理器读取数据。
- WR(低有效):信号始终为1,微处理器不写入任何数据。
- IO / M(低有效):整个信号为0,正在存储器上执行操作。
- S0和S1 – S1 = 1和S0 = 0用于读操作。
在内存中写入(t8-t10 T状态)–
- 00:存储操作码的地址的低位,即00
- 50:存储操作码的地址的高位,即50。
- ALE:为多路复用地址和数据总线提供信号。仅在t8中,它用作地址总线以获取地址的低位,否则它将用作数据总线。
- RD(低有效):信号始终为1,微处理器未读取任何数据。
- WR(低有效): t8中的信号为1,微处理器不写入任何数据。在t9和t10中,信号为0,数据由微处理器写入。
- IO / M(低有效):整个信号为0,正在存储器上执行操作。
- S0和S1 – S1 = 0和S0 = 1用于写操作。