スキームでnビットALUを作成していますが、これまでのところ1ビットALUがあります。誰かがこの問題にアプローチする方法を教えてもらえますか? その手順は次のとおりです。
手続きの形式は、
(ALUn selection x1 x2 n)
最初のパラメーターは、 、、、、または
selection
のいずれかの値を取ることができます。2 番目と 3 番目のパラメータとは、リスト形式の 2 つの n ビット 2 進数です。'add
'sub
'and
'or
'xor
x1
x2
and、または 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)]))
add と sub を自分で行う方法を理解する必要があります。