2012-04-09 1 views
1

나는 스키마에서 n 비트 ALU를 만들고 있으며, 지금까지 1 비트 ALU를 가졌습니다. 누군가이 문제에 접근하는 방법을 말해 줄 수 있습니까? 여기에 대한 지시이다 : 'add, 'sub, 'and, 'or 또는 'xor :스키마의 n 비트 ALU

절차의 형식은 첫 번째 파라미터가 selection는 임의의 값을 취할 수

(ALUn selection x1 x2 n)  

이다. 두 번째 및 세 번째 매개 변수 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)])) 

추가하고 자신을 서브하는 방법을 파악해야한다!