Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
35
Task/Four-bit-adder/PL-I/four-bit-adder.pli
Normal file
35
Task/Four-bit-adder/PL-I/four-bit-adder.pli
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
/* 4-BIT ADDER */
|
||||
|
||||
TEST: PROCEDURE OPTIONS (MAIN);
|
||||
DECLARE CARRY_IN BIT (1) STATIC INITIAL ('0'B) ALIGNED;
|
||||
declare (m, n, sum)(4) bit(1) aligned;
|
||||
declare i fixed binary;
|
||||
|
||||
get edit (m, n) (b(1));
|
||||
put edit (m, ' + ', n, ' = ') (4 b, a);
|
||||
|
||||
do i = 4 to 1 by -1;
|
||||
call full_adder ((carry_in), m(i), n(i), sum(i), carry_in);
|
||||
end;
|
||||
put edit (sum) (b);
|
||||
|
||||
HALF_ADDER: PROCEDURE (IN1, IN2, SUM, CARRY);
|
||||
DECLARE (IN1, IN2, SUM, CARRY) BIT (1) ALIGNED;
|
||||
|
||||
SUM = ( ^IN1 & IN2) | ( IN1 & ^IN2);
|
||||
/* Exclusive OR using only AND, NOT, OR. */
|
||||
CARRY = IN1 & IN2;
|
||||
|
||||
END HALF_ADDER;
|
||||
|
||||
FULL_ADDER: PROCEDURE (CARRY_IN, IN1, IN2, SUM, CARRY);
|
||||
DECLARE (CARRY_IN, IN1, IN2, SUM, CARRY) BIT (1) ALIGNED;
|
||||
DECLARE (SUM2, CARRY2) BIT (1) ALIGNED;
|
||||
|
||||
CALL HALF_ADDER (CARRY_IN, IN1, SUM, CARRY);
|
||||
CALL HALF_ADDER (SUM, IN2, SUM2, CARRY2);
|
||||
SUM = SUM2;
|
||||
CARRY = CARRY | CARRY2;
|
||||
END FULL_ADDER;
|
||||
|
||||
END TEST;
|
||||
Loading…
Add table
Add a link
Reference in a new issue