关于实验机TEC-2中SVZC的讨论

  在大学中学习计算机组成原理时往往使用的实验机是TEC-2。

 

  在TEC-2中,关于SVZC的讨论令人头痛,初学者总是无法弄清每次运算后SVZC的结果。经过反复实验,我将SVZC如何变化的情况初略总结如下。

 

  在TEC-2中接受SVZC的是用GAL20VB芯片做成的。GAL20VB芯片是时序逻辑电路,在实验册后的图中可以清楚地看到GAL20VB芯片有一个引脚是CLK,这就充分说明为什么要在按STEP键后,才可以接受上一次运算的SVZCGAL20VB芯片接受ALU运算后的SVZC值或接受来自内部总线的SVZC值。

   

  S为符号标志位。在TEC-2中表示本次运算结果的正负,“1”表示负,“0”表示正。在TEC-2中最高位表示符号位。例如:A000H+0001HS置“1”,因为结果为A001H,最高位为1,所以为负数。又如:5000H+5000HS置“1(其余标志位的变化在后面讨论),因为结果为A000H,最高位为1,所以为负数。S位比较容易理解,只要看ALU中的结果的最高位,就能判断S位的值。

 

  V为溢出标志位。在TEC-2中当两个正数相加变为负数或两个负数相加变为正数时产生溢出。例如:5000H+5000H,结果为负数产生溢出,V置“1”。又如:A000H+A000H,结果既产生进位又有溢出,所以C置“1(在后面讨论)V置“1”。在实验中FFFFH+0001H,结果为0,我们可能会认为发生了溢出,但我们发现结果的SVZCV并未置“1”,其实原因很简单FFFFH表示-1-11相加结果当然没有溢出。注意当一个正数与一个负数相加不可能产生溢出。

  

  Z为零标志位。当结果为零时,就将Z置“1”,其余均为“0”。例如:FFFFH+0001H,结果为0Z置“1”。

  

  C为进位标志位。注意在此进位的产生是对所有比特位而言的,包括符号位在内。例如:A000H+A000H,显然最高位产生了进位,C置“1”。值得注意的是,在实验中:8888H-9999HC也为“1”,这是因为借位和进位在硬件上的实现是一样的,在此有借位,所以C置“1”。

 

  希望这个总结对大家理解TEC-2中的SVZC时有所帮助。

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值