2012-04-09 58 views
1

我在方案中製作n位ALU,並且我有一個1位ALU。 有人可以告訴我如何解決這個問題?下面是說明它:方案中的n位ALU

該程序的格式是

(ALUn selection x1 x2 n)  

其中第一參數,selection可以取任何值的:'add'sub'and'or,或'xor。第二個和第三個參數x1x2是列表格式的兩個n位二進制數。

回答

1

下面是代碼和,或XOR:

(define (ALUn selection x1 x2 n) 
    (cond 
    [(or (not (= (length x1) n)) (not (= (length x2) n))) (error "Wrong register length!")] 
    [(equal? selection 'and) (map bitwise-and x1 x2)] 
    [(equal? selection 'or) (map bitwise-ior x1 x2)] 
    [(equal? selection 'xor) (map bitwise-xor x1 x2)])) 

你應該弄清楚如何做補充和SUB自己!