在程序中使用如下指令来调用这个乘法子程序,例如,把25h和12h相乘:
CALL指令把PC的值保存到堆栈中,被保存的这个值是CALL指令的下一条指令的地址,然后 CALL指令将使程序跳转到标志为Multiply的指令,即子程序的起始处。当子程序得到计算结果后,执行RET(返回)指令,该指令使保存在堆栈的PC的值弹出,并重新设置到PC,之后程序将继续执行CALL指令后面的指令。
8080指令集包括条件 CALL指令和条件Return指令,但它们使用的频率比条件跳转指令小得多。下面的表格完整地列出了这些指令。
正如你大概所了解的,存储器并不是连接在微处理器上的唯一设备。一个完整的计算机系统通常需要输入/输出设备(I/O)以实现人机交互。输入/输出设备通常包括键盘和显示器等。
微处理器是如何与外围设备(peripheral,除存储器外,与微处理器连接的所有设备都可以称为外围设备)互相通信的呢?外围设备配备了与存储器类似的接口,微处理器通过与某种外围设备对应的特定地址(即接口)对其进行读写操作。在某些微处理器中,外围设备实际上占用了一些通常用来寻址存储器的地址,这种结构称作内存映像I/O(memory-mappedI/O)。但在8080中,除了常规的65536个地址外,另外增加了256个地址专门用来访问输入/输出设备,它们被称作I/O端口(I/O ports)。I/O地址信号标记为$\mathbf { A } _ { 0 } \sim \mathbf { A } _ { 7 }$ ,但I/O的访问方式与存储器的访问方式不同,两者的区分由8228系统控制芯片的锁存信号来标识。
19两种典型的微处理器
299