PHÉP CỘNG TRONG HỆ BÙ 2

Một phần của tài liệu giáo trình kiến trúc máy tính 2 - phan văn nghĩa (Trang 57 - 62)

CHƯƠNG 3 : CỔNG LOGIC & MẠCH SỐ

4.5PHÉP CỘNG TRONG HỆ BÙ 2

b) Bộ cộng đầy đủ ( Full adder)

4.5PHÉP CỘNG TRONG HỆ BÙ 2

Quy tắc:

• Phép cộng trong hệ bù 2 được tiến hành tương tự phép cộng nhị phân, mọi sự tràn số đều bị bỏ qua (khơng tính).

• Nếu bit dấu là 0 thì kết quả là số dương

• Nếu bit dấu là 1 thì kết quả là số âm trong hệ bù 2

4.6 PHÉP TRỪ TRONG HỆ BÙ 2

Quy tắc:

• Viết cả số bị trừ và số trừ dưới dạng bù 2 có dấu (số dương ở dạng nhị phân nguyên thủy bit dấu là 0, số âm chuyển sang dạng bù 2 có dấu).

• Lấy bù 2 của số trừ (đã được chuyển sang hệ bù 2 có dấu ở bước thứ nhất). Điều này sẽ làm số trừ là dương chuyển thành số âm và ngược lại. Nói cách khác, ta thay đổi dấu của số trừ.

• Sau khi lấy bù 2 số trừ ở bước thứ hai, nó được cộng với số bị trừ. Bit dấu của kết quả cho biết số dương hay số âm. Mọi sự tràn số bị bỏ qua. Nếu kết quả là số âm thì phải lấy bù 2 để biết giá trị nhị phân của nó.

• Hai số phải có cùng số bit.

Ý nghĩa: Theo trên ta thấy rằng bằng cách sử dụng hệ bù 2, máy tính thực hiện phép trừ như phép cộng.

4.7 CỘNG VÀ TRỪ BCD

a) Cộng BCD

BCD là một bộ mã sử dụng 4 bit nhị phân để biểu diễn các số thập phân. Phép cộng BCD được thực hiện như đối với phép cộng nhị phân cho từng nhóm bit BCD. Có 2 trường hợp sau đây:

• Tổng 2 số nhỏ hơn hoặc bằng 9: xét trường hợp 5+4 5 0101 BCD for 5 4 0100 BCD for 4 9 1001 BCD for 9 xét trường hợp 45+33 45 0100 0101 BCD for 45 33 0011 0011 BCD for 33 78 0111 1000 BCD for 78 • Tổng hai số lớn hơn 9: Xét 6+7 6 0110 BCD for 6 7 0111 BCD for 7

Để sửa sai người ta cộng thêm 6 (0110) vào kết quả như sau: 1101

0110

0001 0011 BCD for 13

Như vậy là trong phép cộng BCD, hệ số sửa sai (0110) sẽ được cộng vào kết quả nếu:

• Kết quả cộng 2 số BCD tạo ra invalid code for BCD (số lớn hơn 1001)

• Phép cộng BCD tạo ra bit nhớ sang vị trí bit có trọng số lớn hơn.

b) Trừ BCD

Phép trừ BCD được tiến hành như đối với phép trừ nhị phân và phải trừ đi hệ số sửa sai (0110) khỏi kết quả để sửa sai trong những trường hợp sau:

• Kết quả trừ 2 số BCD tạo ra invalid code for BCD (số lớn hơn 1001)

• Phép trừ BCD tạo ra bit mượn sang vị trí bit có trọng số lớn hơn. ví dụ: 17 0001 0111

-9 0000 1001

0000 1110 (1110 invalid code for BCD) - 0110

0000 1000

4.8 CỘNG VÀ TRỪ HEX

a) Cộng hai số HEX

Cộng trực tiếp các digit của 2 số hex như cộng thập phân. Nếu kết quả lớn hơn 15 thì trừ đi 16 và nhớ 1 sang bit có trọng số lớn hơn. (adsbygoogle = window.adsbygoogle || []).push({});

Sau đây là vài ví dụ cộng 2 số hex. Ví dụ 1:

97H + 98H

1810 1510 Kết quả trung gian 12FH

Ví dụ 2:

+ 3FH

11102510 Kết quả trung gian B9H

b) Trừ hai số hex

Cũng như với phép cộng, có thể trừ 2 số hex như trừ thập phân với lưu ý rằng số mượn là 16. Sau đây là vài ví dụ về trừ 2 số hex.

Ví dụ 1:

FCH - 25H

1310 710 kết quả trung gian D7H

Ví dụ 2:

A7H - 3BH

610 1210 kết quả trung gian 6CH

BÀI TẬP CHƯƠNG 2,3 & 4

1. Đổi các số thập phân sau đây thành số nhị phân và số Hex: a) 24 b) 15.25 c) 512 d) 127 e) 2048 f) 65535

2. Tìm giá trị thập phân tương đương của các số hex sau: a) 15 b)31FD

c) FFFF d)C0A

3. Tìm giá trị thập phân tương đương của các số nhị phân sau: a) 11001111 b) 10000000 c) 111111 00 d) 10000111

4. Biểu diễn các số thập phân sau trong hệ bù 2 (dùng 8 bit và 16 bit) a) ± 255 b) ± 5

c) ± 12 d) ±1

5. Hãy liệt kê các số liên tiếp trong hệ 8 bằt đầu từ 668 đến 2008 6. Hãy liệt kê 20 số liên tiếp trong hệ Hex từ 9h.

7. Tra bảng mã ASCII rồi gắn thêm bit chẳn lẻ chẳn tại MSB cho chuỗi: THIS IS A MESSAGE. Biểu diễn kết quả ra Hex.

8. Một đường phố có 1000 ngơi nhà. Người ta muốn đánh địa chỉ cho chúng bằng số nhị phân ( bắt đầu từ 0). Hỏi phải sử dụng số nhị phân bao nhiêu bit để có thể địa chỉ cho 1000 ngơi nhà này? Viết ra vùng địa chỉ của 1000 ngơi nhà đó dưới dạng nhị phân và hexa.

9. Cho đoạn mã sau trong bộ nhớ máy tính : 1000 0011 1000 0111

Đoạn mã có thể là :

• 1 số nhị phân nguyên thủy

• 1 số trong hệ bù 2

Chỉ lập trình viên, người đã gõ đoạn mã này vào máy tính mới biết được nó biểu diễn cho cái gì. Hãy tìm giá trị thập phân tương đương của đoạn mã trong từng trường hợp.

10. Sau đây là tên và nội dung ( dạng HEX) của các thanh ghi 16 bit trong vi xử lý: (adsbygoogle = window.adsbygoogle || []).push({});

AX= 1234, BX= 000A, CX= FFFA, DX= 7FFF Hãy tìm giá trị và dấu của chúng trong hệ 10.

11. Thiết kế mạch logic để phát hiện lỗi trong mã BCD. Lối vào là mã BCD, lối ra ở trạng thái 1 khi có lỗi.

12. Làm thế nào để xây dựng 1 cổng AND có 2 lối vào từ những cổng NOR 2 lối vào.

13. Thực hiện các phép toán sau trong hệ nhị phân nguyên thủy: a) 12 + 39 b) 9+4

c) 18 + 37 d) 2+7 14. Thực hiện các phép toán sau trong hệ Hex

a) 12 + 34 b) FF + F0

c) DFA – FFF d) 123 - CD 15. Biểu diễn theo chuẩn IEEE 32 bit các số sau:

a) +27.25 b) –27.25 c) +12 d) –12

Một phần của tài liệu giáo trình kiến trúc máy tính 2 - phan văn nghĩa (Trang 57 - 62)