文档详情

微处理器结构和指令集.ppt

发布:2017-07-21约1.77万字共66页下载文档
文本预览下载声明
第四章 微处理器结构和指令集 CCR条件码寄存器中标志的意义(1) C标志 在运算时,发生最高的D7位向前进位或借位的情况它将置位。对于无符号数加来说,说明和超过了255。 对于无符号数减来说,说明被减数小于减数,这在比较二无符号数大小时很有意义 H标志 在运算时,发生D3位向D4的进位或借位的情况它将置位。这种进位或借位对于BCD数运算的+6/-6调整才有意义 V标志 最高位向进位位的进位和次高位向最高位的进位如果相同,未发生溢出;否则,产生溢出,此时虽结果已经错误,但其符号仍可按相反解释代表结果的正负!该标志的含义因参与运算的数或编码不同而不同!对于无符号数的运算来说,无任何特殊意义。不必关心。 对于有符号数补码的运算来说,表示已经发生了溢出,即超 出了编码长度所能表达的数值范围。因此,补码运算时必须关注V标志的情况 N标志 反映运算结果是否为负数(D7) Z标志 反映运算结果是否为0 标志位受算术运算影响的情况 (A)=C3H, (2500)=AAH (X)=2500 执行 ADDA,x 后: 位 7654 3210 C 3H | 1100 | 0011 AAH + | 1010 | 1010 和: | 0110 | 1101 进位: 1| 0000 | 0100 结果: (A)=6D 标志 C=1,OV=1,H=0,N=0,z=0 (A)=4BH, (2500)=AA (X)=2500(C)=1 执行 ADCA ,X 后 位 7654 3210 4 BH | 0100 | 1011 AAH | 1010 | 1010 + 1 结果: | 1111 | 0110 进位 0| 0001 | 0111和 (A)=F6 标志 C=0,OV=0,H=1,N=1,Z=0 标志位受算术运算影响的情况 (A)=C9H, (2500)=54H, (X)=2500 (C) = 1 执行 SBCA ,X 后: 位 7654 3210 C 9H | 1100 | 1001 5 4 H | 0101 | 0100 - 1 运算结果 | 0111 | 0100 借位 0| 1110 | 1001 (A)=74 标志 C=0,V=1,H=0,N=0,Z=0 (A)=DDH,(2500)=E8 (X)=2500 执行 SUBA ,X 后 位 7654 3210 DDH | 1101 | 1101 E 8H - | 1110 | 1000 借位 1| 1100 | 0000 运算结果 | 1111 | 0101 和 (A)=F5 标志 C=1,V=0,H=0,N=1,Z=0; 算术运算过程中标志的意义(2) 同一个标志,其含义也因参与运算的数或编码的不同而不同! 不管参与运算的是什么数或什么编码,在计算机看来都是一些“二进数”!所有的指令功能都是针对“二进数”而言的;所得到的运算结果,在计算机看来也是“二进数”! 究竟参与运算的这些“二进数”是什么数或什么编码,得到的运算“结果”是什么数或什么编码,这是在程序设计阶段,由程序员事先安排好了的,不能随便解释。 比如刚才例子中的数 “0xE8”,如果当初程序员按着补码编码制度用来表示 “-24”的;以后任何人都只能这样“理解”和“解释”;绝对不可以再解释为无符号的数值“232”! 相反,如果当初程序员是用它来表示无符号的数值“232”,那么以后也绝对不可以再解释为“-24”! 算术运算过程中标志的意义(3) 比较二无符号数大小时应看 C标志。 BCD数运算后不必直接关
显示全部
相似文档