比较运算电路实验
实验原理
在计算机软件程序设计中,常常需要比较两个变量的数值大小。实现两个数大小比较的最直接的做法就是将这两个数相减,根据减法的结果判断两者的大小。例如,若X<Y,则X-Y的结果一定为负,因此依据符号标志就可以判断;但是若运算结果溢出,则恰恰相反。表 1给出了两个带符号数依据减法运算结果的标志位比较大小的判断条件。而两个无符号数的相减,则可依据是否有借位来判断两个数的大小。表 2给出了无符号数比较大小的判断条件。
大小关系 | 判定条件 |
---|---|
X>Y |
OF⊕SF=0 且ZF=0 |
X≥Y |
OF⊕SF =0 |
X=Y |
ZF=1 |
X≠Y |
ZF=0 |
X<Y |
OF⊕SF =1 |
X≤Y |
OF⊕SF =1 或ZF=1 |
大小关系 | 判定条件 |
---|---|
X>Y |
BF=0 且ZF=0 |
X≥Y |
BF=0 |
X=Y |
ZF=1 |
X≠Y |
ZF=0 |
X<Y |
BF=1 |
X≤Y |
BF=1 或ZF=1 |
注:表中BF表示借位,BF=0代表没有借位,BF=1代表有借位。BF可以由进位标志CF得到,根据电路设计的不同,BF可能与CF相反,也可能与CF一致。
实验任务
-
设计
依据S、Z、O标志位,产生带符号数相等、不等、小于、大于等于的比较结果。 可使用Digital仿真软件的电路生成功能,输入表达式自动生成电路图,具体用法参考第一章Digital仿真软件使用指南的“电路生成”。
-
仿真
将比较电路作为子电路添加到ALU实验电路中,并将ALU输出的标志位与比较电路连接。操作ALU做减法运算,输入不同运算数据,验证比较结果是否正确。