我在方案中制作 n 位 ALU,到目前为止我有一个 1 位 ALU。有人可以告诉我如何解决这个问题吗?以下是它的说明:
程序的格式是
(ALUn selection x1 x2 n)
其中第一个参数
selection
可以采用任何值:'add
,'sub
,'and
,'or
, 或'xor
. 第二个和第三个参数x1
和x2
是列表格式的两个 n 位二进制数。
这是与或异或的代码:
(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)]))
您应该弄清楚如何自己添加和子!