运算器

⑴ 接收处导工作当指令中的操作码为接收时,则数码从存贮器串行送入寄存器A。操作步骤如下(参看图2-4):
第一步:移位信号使寄存器A中的代码右移一位,右移一位后触发器T_1处于"0"态。
第二步:接收信号送至B_1,若存器的数码为1,则B_1的输出将T_1置1,这就表示将存储器中的数送到寄存器A的T_1。若存器的数码为0,则B_1没有输出,T_1仍为0。
第一步与第二步再重复31次,则完成接收操作,数码依次存放于T_1-T_32中,其中T_1的状态表示数码的符号。
移位信号及接收信号有32个,由局部控制器供给。
应该注意,接收操作将寄存器A中原来存放的数清除。即移位时,A中的数逐次由右边移出。32个移位脉冲将原来T_1中的数移至T_33,T_2-T_32中的数移出去。
⑵ 接收反码 这个操作的步骤与接收操作相似,其不同之处为接收时通过B_2,B_2接到存贮器输出的"0"端。当存器的输出为0时,T_1被置1;而当存贮器的输出为1时,T_1仍保持"0"态。因此存贮器中的数的反码被送入寄存器A。
⑶ 发送 确发送操作为将寄存器A内的数串行送到存贮器去。对发送操作有两个要求:第一,数码以脉冲形式送入存贮器;第二,数码送走以后,寄存A中仍然保留着这个数。满足第一个要可在T_3(参看图2-4)的"0"端加微分线路。满足第二个要求可将T_32 输出通过B_3(由发送操作码控制)及3再送到T_1。
所以,在作发送操作时,只要从局部控制器依次送来32个移位信号就可以了。
上面曾提到过,代码从输入器送到存储器中要先经过运算器。具体过程如下:
第一步:输入器将代码送入寄存器A(图2-4),其步骤和接收操作一样,即先移位,后接收。但此时移位信号及输入代码均从输入器来。移位及接收共进行32次,将一个完整的数(共32位)接收到寄存器A的T_1-T_32中。
第二步:将寄存器A中的数送到存储器去。这步操作与发送操作同。
在107计算机中,没有专门的输入指令。输入操作是在开始计算前,由人工启动输入器来完成的。
⑷ 逻辑加法 这个操作将寄存器A中的数与存贮器中某一存贮单元内的数进行按位的逻辑加法,结果在寄存器A中。操作步骤如下(参看图2-5):
第一步:移位信号使寄存器A中的代码右移一位,这样T_32的数移至T_33,而T_1为0。
第二步:逻辑加法信号送到B_1,若T_33或存贮器的代码为1,B_1有输出使T_1为1。
第一步与第二步再重复31次,则完成32位代码的逻辑加法,其结果在T_1-T_32中。
本操作所需的32个移位信号及32个逻辑加法信号均由局部控制器供给。
⑸ 逻辑乘法 这个操作将寄存器A中的数与存贮器中某一单元内的数进行按位的逻辑乘法,结果在寄存器A中。操作步骤如下(参看图2-5):
第一步:和逻辑加法的第一步一样。
第二步:逻辑乘法信号送到B_2,B_2的输出送到B_3,若T_33与存储器中的代码均为1,则B_3有输出使T_1为1。
第一步与第二步再重复31次。本操作所需信号均由局部控制器供给。
⑹ 加法顾问加法运算是将寄存器A中的数(被加数)与存贮器某单元内的数(加数)相加,和数在寄存器A内。操作步骤如下(参看图2-6):
第一步:信号t_+使T_进位置0。因为在一始作国加法时,不会有进位数。
第二步:移位信号使寄存器A中的数右移一位。
第三步:加信号送到B_1及B_3。若存器中的数为1则B_1有输出,表示加数为1;若存储器中的数为0,则B_3有输出,表示加数为0。存贮器中的数与T_33中的数在一位加法器中进行加法,其和送到T_1。一位加法器产生"0"的进位数经过延迟后将T_进位置0;所产生的"1"进位数经过延迟后送到B_5。B_5由"非按位加法"控制,即当指令中的操作码不是按位加法时,B_5为高电位所控制。在加法操作时,"1"进位数通过B_5将T_进位置"1"。
第二步与第三步再重复31次,完成32位数的加法,和数在寄存器A的T_1-T_32中。
第四步:信号t_32^'送至B_6,检查是不明溢出。若溢出则机器停止工作。
在图2-6中,t_+信号、t_32^'信号、32个移位信号及32个加信号均由局部控制器来。B_5的"非接位加法"电位及B_7的"加或减"电位由指令控制器来。
⑺ 按位加法 本操作是将寄存器A中的数与存贮器内某单元的数进行按位加法,其结果在寄存器A中。按位加法即不进位的加法,其操作步骤和加法一样,仅一位加法器所产生的"1"进位数不送至T_进位,这由B_5(图2-6)控制。在按位加法时,B_5由低电位控制,故一位加法器的"1"进位数不能通过B_5。
⑻ 减法 减法运算是将存储器中某单元内的数y(减数)从寄存器A中的数x(被减数)减去,其差数在寄存器A中。由于采用补码系统x-y可用x+〖(-y)〗_补代替。〖(-y)〗_补为求y的反码(即将y_k变为y_k),并在最低位加1。在图2-6中,y_k的求反是利用B_2及B_4来完成的,最低位加1系在开始作减法以前,由t_-信号使T_进位置1。减法的操作步骤和加法相似。
⑼ 打印 打印操作为将寄存器A中的数打印在纸上,打印出的数是十进位的,每次打印一位数。要打印的数已先由程序从二进位数变为二—十进位数,并放在寄存器A中。打印操作的步骤如下:
第一步:T_1中的数(即符号位)打印出来。
第二步:T_2—T_5中的数(表示一位十进位数)通过转换设备(不在运算器中)打印出来。
以上两步由打印控制线路控制。
第三步:将寄存器A中的数左移4位。由于寄存器A只有右移一位这功能,故采用循环右移28次的办法来实现左移4位。在图2—7中,若送来28个移位信号(由局部控制器送来)则可将T_6—T_9中的数移至T_2—T_5中。
第二步与第三步再重复6次,则可打印出7位十进位数,连符号位一共打印8次。
⑽ 乘法 乘法运算是比较复杂的操作。运算之前,乘数已在寄存器A中,被乘数在存储器中,运算完毕后,乘积在寄存器A中。乘法操作的步骤如下:
第一步:将寄存器A中的数(乘数)移至寄存器B中,此时,图2-8中的B_1由高电位控制,局部控制器送来32位移位脉冲将T_1—T_32中的数移至T_34—T_65,而T_1—T_32中的数为0。
第二步:根据T_65及T_66的状态,进行乘法操作。若T_65及T_66为01,则将寄存器A中的数与被乘数(在存贮器中)相加,所加的结果送入寄存器A内,然后将寄存器A及B右移一位,若为10,则将寄存器A中的数减去存贮器中的被乘数,结果送入寄存器A,然后寄存器A及B右移一位。若为00或11,则不进行加法,仅将寄存器A及B右移一位。应该注意,在右移一位时,若T_1本来为1(即寄存器A内的数为负),则移位后T_1仍应为1。这可由B_1及延迟线路(图2-8)完成。乘法移位信号在移位信号以前送来,若T_1为1,则B_2有输出,B_2的输出在3中延迟,等到移位信号使寄存器中的数右移一位以后才将T_1再置1。
第二步再重复进行30次。
第三步:除了不移位以外,动作和第二步一样。这一步骤作完以后,寄存器A的数使是所需的乘积。
乘法过程中所需的各种信号都由局部控制器供给。
⑾ 除法
除法运算是本机器中最复杂的操作,运算之前,被除数已放在寄存器A中,除数存在存贮器中,运算完毕后,商数在寄存器A中。除法过程可分为四步:
第一步:从存贮器中取出除数的符号,保留在触发器T_符号中,T_符号在存贮器内。与此同时,局部控制器送32个移位信号至运算器(图2-9中用"移位2"表示),使寄存器B被清除为0。
第二步:除法操作。根据T_1及T_符号之状态,进行除法操作。若T_1及T_符号同状态,则将T_65置"1"(表示商"1"),接着进行寄存器A中之数左移一位,减去除数(其实现方法是在作减法时第一次移位信号不送至寄存器A,那末参与运算的数实际上相当于左移一位);同时使寄存器B循环右移31次(实现商数左移一位,此时门B_1被局部控制器送来的÷_1信号开启)。若T_1及T_符号不同状态,则将T_65置"0"(表示商"0"),接着进行寄存器A中之数左移一位与除数相加,并使寄存器B循环右移31次。
第二步再重复进行30次,共得到31位商数。
第三步:修正商数。局控制器来信号信号使T_34加"1",T_65置"1"。
第四步:在局部控制器作用下,同时送来32次"移位1"及"移位2"信号,使寄存器B之数送至寄存器A(此时局部控制器送来的÷_1信号使门B_2开启)。