Chinaopub.com 第9章两种典至的微处理器193 下载 因此可能在8080内部某个地方,标有ss的3位标识用在8-1数据选择器中,标有dd的3位 标识用于控制3-8译码器,此译码器用来决定哪一个寄存器锁存了一个值。 也可能使用寄存器B和C来构成一个16位寄存器对BC,用寄存器D和E来构成一个16位寄 存器对DE。如果每一个寄存器对都包含用于装载或保存一个字节的存储器地址,则可以使用 述指令 操作码 指令 STAX IBC], A LDAXA, BC] STAX IDEJ, A IA LDAXA, DEJ 另一种类型的传送指令叫做传送立即数,指定的助记符为MVI。传送立即数指令占两个 字节,第一个是操作码,第二个是1个字节的数据。此字节从存储器中传送到一个寄存器中或 由HL寻址的存储单元中。 操作码 06 MVI B, xx MVI C, xX 16 MVI MVI E, xx mVI MVI [HLI,xx E MVI A, xx 例如,当指令: MVI E, 37h 执行后,寄存器E中包含有字节37h。这就是第三种寻址方式,即立即数寻址方式 个操作码的集合完成四种基本算术运算,那是在第17章开发处理器时我们就已熟悉的 运算,即加法(ADD)、进位加法(ADC)、减法(SUB)和借位减法(SBB)。所有情况中 累加器是两个操作数之一,也是结果的目的地址。 操作码 指令 操作码 ADDA, B SUB A ADDA, C SUB A, C ADDA, D 92 SUBA. D SUBA,E SUBA.H A, HL] SUB A, HL] SBBA, B 99 ADC A, D SBBA, E ADCA. H SBBA,H ADCA. L 91 SBBA, L ADC A, HLI SBB A, HL] ADCA.A SBBA.A
第19章 两种典型的微处理器 193 下载 因此可能在8 0 8 0内部某个地方,标有 s s s的3位标识用在8 - 1数据选择器中,标有 d d d的3位 标识用于控制3 - 8译码器,此译码器用来决定哪一个寄存器锁存了一个值。 也可能使用寄存器 B和C来构成一个1 6位寄存器对B C,用寄存器D和E来构成一个1 6位寄 存器对D E。如果每一个寄存器对都包含用于装载或保存一个字节的存储器地址,则可以使用 下述指令: 操作码 指令 操作码 指令 0 2 S TAX [BC],A 0 A LDAX A,[ B C ] 1 2 S TAX [DE],A 1 A LDAX A,[ D E ] 另一种类型的传送指令叫做传送立即数,指定的助记符为 M V I。传送立即数指令占两个 字节,第一个是操作码,第二个是 1个字节的数据。此字节从存储器中传送到一个寄存器中或 由H L寻址的存储单元中。 操作码 指令 06 MVI B,x x 0 E MVI C,x x 16 MVI D,x x 1 E MVI E,x x 26 MVI H,x x 2 E MVI L,x x 3 6 MVI [HL],x x 3 E MVI A,x x 例如,当指令: MVI E,37h 执行后,寄存器E中包含有字节3 7 h。这就是第三种寻址方式,即立即数寻址方式。 3 2个操作码的集合完成四种基本算术运算,那是在第 1 7章开发处理器时我们就已熟悉的 运算,即加法(A D D)、进位加法(A D C)、减法(S U B)和借位减法(S B B)。所有情况中, 累加器是两个操作数之一,也是结果的目的地址。 操作码 指令 操作码 指令 8 0 ADD A,B 9 0 SUB A,B 8 1 ADD A,C 9 1 SUB A,C 8 2 ADD A,D 9 2 SUB A,D 8 3 ADD A,E 9 3 SUB A,E 8 4 ADD A,H 9 4 SUB A,H 8 5 ADD A,L 9 5 SUB A,L 8 6 ADD A,[ H L ] 9 6 SUB A,[ H L ] 8 7 ADD A,A 9 7 SUB A,A 8 8 ADC A,B 9 8 SBB A,B 8 9 ADC A,C 9 9 SBB A,C 8 A ADC A,D 9 A SBB A,D 8 B ADC A,E 9 B SBB A,E 8 C ADC A,H 9 C SBB A,H 8 D ADC A,L 9 D SBB A,L 8 E ADC A,[ H L ] 9 E SBB A,[ H L ] 8 F ADC A,A 9 F SBB A,A
194的 China-pub.com 下载 假设A中是35h,寄存器B中是22h,当指令: 执行后,累加器中的结果为13h。 若A中的值为35h,寄存器H中的值为10h,L中的值为7Ch,存储器地址107Ch中的值为4A 则指令: 把累加器中的内容(35h)和通过寄存器对HL寻址得到的值(4Ah)相加,并把结果 (7Fh)保存到累加器中。 ADC和SBB指令允许8080加/减16位、24位、32位和更多位的数。例如,假设寄存器对BC 和DE都包含16位数,你想把它们相加,并把结果存到BC中。下面是具体做法: MOv A, C 低位字节 MOV C, A MovA,B:高位字节 MOV B, A 其中有两条加法指令,ADD指令用于低位字节相加,ADC指令用于高位字节相加。第 条加法指令的进位位包含在第二条加法指令中。因为只能利用累加器进行加法运算,所以在 这么短的代码中也需要至少4条MOⅤ指令。许多MOV指令常常出现在8080代码中 该是谈论8080标志位的时候了。在第17章的处理器中,已有进位标志位CF和零标志位ZF 8080还有3个标志位,即符号标志位SF、奇偶标志位PF和辅助进位标志位AF。所有标志位都 保存在另一个叫作程序状态字(PSw: program status word)的8位寄存器中。像LDA、STA 和MOV这样的指令不影响标志位,而ADD、SUB、ADC和SBB指令却要影响标志位,影响的 方式如下: 当运算结果最高位为1时,符号标志位SF为1,表示结果为负 当结果为0时,零标志位ZF为1 当运算结果中“1”的个数为偶数时,奇偶标志位PF=1:当运算结果中“1”的个数为 奇数时,奇偶标志位PF=0。PF有时用来粗略地检测错误,此标志位在8080程序中不常 用 ·当ADD或ADC运算产生进位或SUB与SBB运算不发生借位时,进位标志位CF=1。(这点 不同于第17章中的计算机进位标志的实现。) ·当操作结果的低4位向高4位有进位时,辅助进位标志位AF=1。此标志位只用在DAA (十进制调整累加器)指令中 有两条指令直接影响进位标志位CF 操作码 含义 置CF为1 CMC 第17章中的计算机可执行ADD、ADC、SUB和SBB指令(尽管没什么灵活性),但8080还 可以进行逻辑运算AND(与)、OR(或)和ⅹOR(异或)。算术运算和逻辑运算都可通过处理 器的算术逻辑单元(ALU)来执行
194 编码的奥秘 下载 假设A中是3 5 h ,寄存器B中是2 2 h ,当指令: SUB A,B 执行后,累加器中的结果为 1 3 h。 若A中的值为3 5 h ,寄存器H中的值为1 0 h,L中的值为7 C h,存储器地址1 0 7 C h中的值为4 A h,则指令: ADD A,[HL] 把累加器中的内容( 3 5 h)和通过寄存器对 H L寻址得到的值( 4 A h)相加,并把结果 (7 F h)保存到累加器中。 A D C和S B B指令允许8 0 8 0加/减1 6位、2 4位、3 2位和更多位的数。例如,假设寄存器对 B C 和D E都包含1 6位数,你想把它们相加,并把结果存到 B C中。下面是具体做法: MOV A,C ;低位字节 ADD A,E MOV C,A MOV A,B ;高位字节 ADC A,D MOV B,A 其中有两条加法指令, A D D指令用于低位字节相加, A D C指令用于高位字节相加。第一 条加法指令的进位位包含在第二条加法指令中。因为只能利用累加器进行加法运算,所以在 这么短的代码中也需要至少 4条M O V指令。许多M O V指令常常出现在8 0 8 0代码中。 该是谈论8 0 8 0标志位的时候了。在第1 7章的处理器中,已有进位标志位C F和零标志位Z F。 8 0 8 0还有3个标志位,即符号标志位 S F、奇偶标志位P F和辅助进位标志位 A F。所有标志位都 保存在另一个叫作程序状态字( P S W:program status word)的8位寄存器中。像L D A、S TA 和M O V这样的指令不影响标志位,而 A D D、S U B、A D C和S B B指令却要影响标志位,影响的 方式如下: • 当运算结果最高位为1时,符号标志位S F为1,表示结果为负。 • 当结果为0时,零标志位Z F为1。 • 当运算结果中“ 1”的个数为偶数时,奇偶标志位 P F = 1;当运算结果中“ 1”的个数为 奇数时,奇偶标志位 P F = 0。P F有时用来粗略地检测错误,此标志位在 8 0 8 0程序中不常 用。 • 当A D D或A D C运算产生进位或S U B与S B B运算不发生借位时,进位标志位 C F = 1。(这点 不同于第1 7章中的计算机进位标志的实现。) • 当操作结果的低 4位向高4位有进位时,辅助进位标志位 A F = 1。此标志位只用在 D A A (十进制调整累加器)指令中。 有两条指令直接影响进位标志位 C F: 操作码 指令 含义 3 7 S T C 置C F为1 3 F C M C C F取反 第1 7章中的计算机可执行A D D、A D C、S U B和S B B指令(尽管没什么灵活性),但8 0 8 0还 可以进行逻辑运算A N D(与)、O R(或)和X O R(异或)。算术运算和逻辑运算都可通过处理 器的算术逻辑单元(A L U)来执行: