2012-04-09 10 views
1

Ich mache n-Bit-ALU in Schema und ich habe eine 1-Bit-ALU so weit. Kann mir jemand sagen, wie ich dieses Problem angehen soll? Hier sind die Anweisungen für sie:n-bit ALU im Schema

Das Format des Verfahrens ist

(ALUn selection x1 x2 n)  

wo der erste Parameter, selection beliebige Werte annehmen kann: 'add, 'sub, 'and, 'or oder 'xor. Die zweiten und dritten Parameter x1 und x2 sind zwei n-Bit-Binärzahlen im Listenformat.

Antwort

1

Hier ist der Code für und oder 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)])) 

Sie sollten Figur, wie sich fügen und Sub!