正在加载图片...
Chinapub.com 第9章两种典至的微处理器191 下载 样,这6个寄存器也是锁存器。处理器可以把数据从存储器传送到寄存器,也可以把数据从 寄存器送回到存储器。然而,这些寄存器没有累加器的功能强大。例如,当两数相加时,其 结果通常送往累加器而非其中一个寄存器。 在8080中,除累加器外的6个寄存器的名字分别为B,C,D,E,H和L。人们通常问的第 个问题是“用F和G干什么?”,第二个问题是“用I,J和K又要做什么?”,答案是使用寄 存器H和L具有某种特殊的含义。H代表高(High),L代表低(Low)。通常把H和L的8位合起来 记作HL来表示一个16位寄存器对,H作为高位字节,L作为低位字节。这个16位值通常用来寻 址存储器。后面我们将看到它的简单用法。 所有这些寄存器都是必需的吗?为什么不在第17章中的计算机中用到它们呢?从理论上 说,它们并非必需,但是使用它们会很方便。许多计算机程序在同一时刻要用到几个数据, 如果所有这些数据都存储在微处理器的寄存器中而非存储器中,执行程序将会更快,因为程 序访问存储器的次数越少,那么它的运行速度也就越快。 8088指令中,有一个至少63个指令码供一条8080指令使用的指令,它就是MOV指令,即 Move的简写。该条指令只有一个字节,用于把一个寄存器中的内容传送到另一个寄存器中 (或同一个寄存器中)。使用大量MOⅤ指令是设计带有7个寄存器(包括累加器)的微处理器 的正常结果。 下面是前32条MOV指令。记住目的操作数在左边,源操作数在右边 操作码 操作码 MOVE. B MOV D, B 4423 MOVB, C 51 MOVD, C MOVB, D MOVD, D MOVB, E MOVD, E MOVB. H MOVB, L MOVD, L MOVB, HLI 789 MOVB, A MOV C, B 23456789 MOVC. C MOVE. C MOVC. D MOVE. D MOV C, E MOVC, H MOVE, H MOVC. L MOVE, L MOV C, [ HLI BcDEF MoE,田HL] MOVC,A MOVE.A 这些都是很方便的指令。当一个寄存器中有值时,可以把它传送到其他寄存器中。注意, 上述指令中有四条指令用到HL寄存器对,如: 前面列出的LDA指令把一个字节从存储器中传送到累加器中,这个字节的16位地址直接 跟在LDA操作码的后面。这里的MOV指令把一个字节从存储器中传送到寄存器B中,但被装 载到寄存器中的字节的地址是保存在寄存器对HL中。HL寄存器是怎样得到16位存储器地址 呢?它可以通过多种方法来实现,或许是通过某种方法计算出来的一样,这6个寄存器也是锁存器。处理器可以把数据从存储器传送到寄存器,也可以把数据从 寄存器送回到存储器。然而,这些寄存器没有累加器的功能强大。例如,当两数相加时,其 结果通常送往累加器而非其中一个寄存器。 在8 0 8 0中,除累加器外的6个寄存器的名字分别为 B,C,D,E,H和L。人们通常问的第 一个问题是“用 F和G干什么?”,第二个问题是“用 I,J和K又要做什么?”,答案是使用寄 存器H和L具有某种特殊的含义。H代表高(H i g h),L代表低( L o w )。通常把H和L的8位合起来 记作H L来表示一个1 6位寄存器对,H作为高位字节,L作为低位字节。这个1 6位值通常用来寻 址存储器。后面我们将看到它的简单用法。 所有这些寄存器都是必需的吗?为什么不在第 1 7章中的计算机中用到它们呢?从理论上 说,它们并非必需,但是使用它们会很方便。许多计算机程序在同一时刻要用到几个数据, 如果所有这些数据都存储在微处理器的寄存器中而非存储器中,执行程序将会更快,因为程 序访问存储器的次数越少,那么它的运行速度也就越快。 8 0 8 8指令中,有一个至少 6 3个指令码供一条8 0 8 0指令使用的指令,它就是 M O V指令,即 M o v e的简写。该条指令只有一个字节,用于把一个寄存器中的内容传送到另一个寄存器中 (或同一个寄存器中)。使用大量M O V指令是设计带有 7个寄存器(包括累加器)的微处理器 的正常结果。 下面是前3 2条M O V指令。记住目的操作数在左边,源操作数在右边: 操作码 指令 操作码 指令 4 0 MOV B,B 5 0 MOV D,B 4 1 MOV B,C 5 1 MOV D,C 4 2 MOV B,D 5 2 MOV D,D 4 3 MOV B,E 5 3 MOV D,E 4 4 MOV B,H 5 4 MOV D,H 4 5 MOV B,L 5 5 MOV D,L 4 6 MOV B,[ H L ] 5 6 MOV D,[ H L ] 4 7 MOV B,A 5 7 MOV D,A 4 8 MOV C,B 5 8 MOV E,B 4 9 MOV C,C 5 9 MOV E,C 4 A MOV C,D 5 A MOV E,D 4 B MOV C,E 5 B MOV E,E 4 C MOV C,H 5 C MOV E,H 4 D MOV C,L 5 D MOV E,L 4 E MOV C,[ H L ] 5 E MOV E,[ H L ] 4 F MOV C,A 5 F MOV E,A 这些都是很方便的指令。当一个寄存器中有值时,可以把它传送到其他寄存器中。注意, 上述指令中有四条指令用到 H L寄存器对,如: MOV B,[HL] 前面列出的L D A指令把一个字节从存储器中传送到累加器中,这个字节的 1 6位地址直接 跟在L D A操作码的后面。这里的 M O V指令把一个字节从存储器中传送到寄存器 B中,但被装 载到寄存器中的字节的地址是保存在寄存器对 H L中。H L寄存器是怎样得到1 6位存储器地址的 呢?它可以通过多种方法来实现,或许是通过某种方法计算出来的。 第19章 两种典型的微处理器 191 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有