正在加载图片...
196的 Chinaopub.com 下载 变为0。如果累加器中的值为01100101,CMA指令使它变为10011010。也可以用下述指令来 使累加器按位取反: A, FEh DAA即 Decimal Adjust Accumulator,如前所述,它可能是8080中最复杂的一条指令。微 处理器中有一个完整的小部件专门用于执行这条指令 DAA指令帮助程序员用BCD码表示的数来进行十进制算术运算。在BCD码中,每一小块 数据的范围在000~1001之间,对应于十进制的0~9。利用BCD码格式,每8位字节可存储两 个十进制数字。 假设累加器中的值为BCD码的27h。由于是BCD码,则它实际上指的是十进制的27。(十 六进制的2hh等于十进制的39。)再假定寄存器B中的值为BCD码的94h。如果执行指令: MOv A, 27 h MOV ADD A, B 累加器中的值将为BBh,当然,它不是BCD码,因为BCD码中的每一块不能超过9。但是, 现在执行指令 则累加器中的值为21h,且CF=1,这是因为27和94的十进制和为121。如果想进行BCD 码的算术运算,这样做是相当方便的 经常需要对一个数进行加1或减1操作。在第17章的乘法程序中,我们需要对一个数减1 使用的方法是加上FFh,它是-1的2的补码。8080中包含特殊的用于寄存器或存储单元的加1 指令(称作增量)和减1指令(称作减量) 操作码 指令 操作码 指令 INR B DCR B NRC DCR C NRD DCR D INRE DCR E INR H DCR H DCR L INR [ HLI DCR HL] DCR A 单字节指令INR和DCR可影响除CF外的所有标志位。 8080也包含4个循环移位指令,这些指令可使累加器中的内容左移或右移1位 操作码 指令 含义 RLC 累加器循环左移 累加器循环右 累加器带进位循环左移 RAR 累加器带进位循环右移 这些指令只影响CF 假定累加器中的值为A7h,即二进制的10100111。RLC指令使A中的内容向左移位,最高 位(移出顶端)成为最低位(移进底端),同时决定进位标志位CF的状态。其结果为01001ll 且CF=1。RRC指令用同样的方法向右移位。开始为10100111,执行RRC指令后,其结果为196 编码的奥秘 下载 变为0。如果累加器中的值为 0 11 0 0 1 0 1,C M A指令使它变为1 0 0 11 0 1 0。也可以用下述指令来 使累加器按位取反: XRI A,FFh, D A A即Decimal Adjust Accumulator,如前所述,它可能是 8 0 8 0中最复杂的一条指令。微 处理器中有一个完整的小部件专门用于执行这条指令。 D A A指令帮助程序员用 B C D码表示的数来进行十进制算术运算。在 B C D码中,每一小块 数据的范围在0 0 0 0~1 0 0 1之间,对应于十进制的0~9。利用B C D码格式,每8位字节可存储两 个十进制数字。 假设累加器中的值为 B C D码的2 7 h。由于是B C D码,则它实际上指的是十进制的 2 7。(十 六进制的2 7 h等于十进制的3 9。)再假定寄存器B中的值为 B C D码的9 4 h。如果执行指令: MOV A, 27 h MOV B, 94 h ADD A, B 累加器中的值将为BB h,当然,它不是B C D码,因为B C D码中的每一块不能超过9。但是, 现在执行指令: DAA 则累加器中的值为 2 1 h,且CF = 1,这是因为2 7和9 4的十进制和为1 2 1。如果想进行B C D 码的算术运算,这样做是相当方便的。 经常需要对一个数进行加 1或减1操作。在第1 7章的乘法程序中,我们需要对一个数减 1, 使用的方法是加上 FFh ,它是- 1的2的补码。8 0 8 0中包含特殊的用于寄存器或存储单元的加 1 指令(称作增量)和减1指令(称作减量): 操作码 指令 操作码 指令 0 4 INR B 0 5 DCR B 0 C INR C 0 D DCR C 1 4 INR D 1 5 DCR D 1 C INR E 1 D DCR E 2 4 INR H 2 5 DCR H 2 C INR L 2 D DCR L 3 4 INR [HL] 3 5 DCR [HL] 3 C INR A 3 D DCR A 单字节指令I N R和D C R可影响除C F外的所有标志位。 8 0 8 0也包含4个循环移位指令,这些指令可使累加器中的内容左移或右移 1位: 操作码 指令 含义 0 7 R L C 累加器循环左移 0 F R R C 累加器循环右移 1 7 R A L 累加器带进位循环左移 1 F R A R 累加器带进位循环右移 这些指令只影响C F。 假定累加器中的值为 A 7 h,即二进制的1 0 1 0 0 111。R L C指令使A中的内容向左移位,最高 位(移出顶端)成为最低位(移进底端),同时决定进位标志位C F的状态。其结果为0 1 0 0 1111 且CF = 1。R R C指令用同样的方法向右移位。开始为 1 0 1 0 0 111,执行R R C指令后,其结果为
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有