Professional Documents
Culture Documents
Tuan8-9 Arithmetic Operations
Tuan8-9 Arithmetic Operations
Tuần 8-9
Mục tiêu:
Hiểu được cách thức máy tính thực thi các phép toán số
học sau:
✓Phép cộng
✓Phép trừ
✓Phép nhân
✓Phép chia
A …0 0 1 1 0
Bù 1(B) …1 1 1 0 0
1 …0 0 0 0 1
…0 0 0 1 1
◼ Tràn (Overflow): là khi kết quả của phép toán vượt quá số bit biểu diễn phần
giá trị
❑n bit biểu diễn được số có dấu bù 2 từ -2n-1 đến +2n-1-1
❑Overflow luôn cho ra 1 kết quả sai
❑Ví dụ: Thực hiện phép cộng hai số có dấu 5 bit (8 + 9), kết quả lưu trong 5 bit
A 0 1 0 0 0
B 0 1 0 0 1
Tổng 1 0 0 0 1
➔Như vậy, kết quả phép toán sai (tổng của hai số dương là một số âm), nguyên nhân là
do kết quả thực sự của phép toán (8 + 9 = 17) nằm ngoài phạm vi biểu diễn số có dấu bù
2 có 5 bit, dẫn đến hiện tượng tràn số học
❑Vấn đề: Làm sao máy tính phát hiện được phép toán thực hiện có bị tràn hay không?
03/2017 Copyrights 2017 CE-UIT. All Rights Reserved. 7
Phép cộng và phép trừ
◼ Khởi tạo giá trị ban đầu cho các thanh ghi:
32 bit thấp của thanh ghi số bị nhân lưu giá trị số bị nhân, 32 bit cao lưu giá trị 0
32 bit của thanh ghi số nhân lưu giá trị số nhân
64 bit của thanh ghi tích lưu giá trị 0
03/2017 Copyrights 2017 CE-UIT. All Rights Reserved. 13
Phép nhân
Đúng Sai
1. Số nhân[0] == 1?
1a. Cộng giá trị số bị nhân vào
tích và lưu kết quả lại vào tích
2. Dịch số bị nhân
sang trái 1 bit
3. Dịch số nhân
sang phải 1 bit
Sai
Đã lập đến lần thứ 32?
Đúng
Hoàn thành
03/2017 Copyrights 2017 CE-UIT. All Rights Reserved. 14
Phép nhân
Đúng Sai
1. Số nhân[0] == 1?
1a. Cộng giá trị số bị nhân vào
tích và lưu kết quả lại vào tích
2. Dịch số bị nhân
Dịch trái sang trái 1 bit
Thanh ghi số bị nhân
8 bit 3. Dịch số nhân
4 bit sang phải 1 bit
Cộng Dịch phải
Mạch cộng Thanh ghi số nhân
8 bit Sai
Đã lập đến lần thứ 4?
Số nhân[0]
Ghi Đúng
Thanh ghi tích Điều khiển Hoàn thành
8 bit
03/2017 Copyrights 2017 CE-UIT. All Rights Reserved. 15
Phép nhân
◼ Kiến trúc hiện thực phần cứng phép chia 32 bit bên trong máy tính
Dịch phải
Thanh ghi Số chia
64 bit
Cộng/trừ Thanh ghi Dịch trái
Mạch cộng/trừ
64 bit Thương
32 bit
Thanh ghi Ghi
Điều khiển
Số dư
64 bit
◼ Khởi tạo giá trị ban đầu cho các thanh ghi:
32 bit thấp của thanh ghi Số dư lưu giá trị Số bị chia, 32 bit cao lưu giá trị 0
32 bit thấp của thanh ghi Số chia lưu giá trị 0, 32 bit cao lưu giá trị Số chia
32 bit của thanh ghi Thương lưu giá trị 0
03/2017 Copyrights 2017 CE-UIT. All Rights Reserved. 22
Bắt đầu
◼ Giải thuật thực hiện phép chia hai số 32 bit Số dư >= 0 Kiểm tra Số dư < 0
Số dư?
2a. Dịch thanh ghi Thương 2b. Dịch thanh ghi Thương sang
sang trái một bit, gán giá trị trái một bit, gán giá trị “0” vào bit
“1” vào bit trọng số nhỏ trọng số nhỏ nhất. Đồng thời, khôi
nhất phục lại giá trị ban đầu bằng cách
cộng giá trị thanh ghi Số dư với
giá trị thanh ghi Số chia, đặt kết
Dịch phải quả lại vào thanh ghi Số dư.
Thanh ghi Số chia
64 bit
Cộng/trừ Thanh ghi Dịch trái
Mạch cộng/trừ 3. Dịch thanh ghi Số
64 bit Thương chia sang phải 1 bit
32 bit
Ghi Lần lập thứ Sai
Thanh ghi Điều khiển 33?
Số dư (Số bị chia) Đúng
64 bit Hoàn thành
03/2017 Copyrights 2017 CE-UIT. All Rights Reserved. 23
Bắt đầu
2a. Dịch thanh ghi Thương 2b. Dịch thanh ghi Thương sang
sang trái một bit, gán giá trị trái một bit, gán giá trị “0” vào bit
“1” vào bit trọng số nhỏ trọng số nhỏ nhất. Đồng thời, khôi
Dịch phải nhất phục lại giá trị ban đầu bằng cách
Thanh ghi Số chia cộng giá trị thanh ghi Số dư với
giá trị thanh ghi Số chia, đặt kết
12 bit quả lại vào thanh ghi Số dư.
Cộng/trừ Thanh ghi Dịch trái
Mạch cộng/trừ
12 bit Thương
6 bit
3. Dịch thanh ghi Số
Thanh ghi Ghi chia sang phải 1 bit
Điều khiển
Số dư (Số bị chia)
12 bit Lần lập thứ Sai
7?
Đúng
Hoàn thành
03/2017 Copyrights 2017 CE-UIT. All Rights Reserved. 24
Dịch phải
Thanh ghi Số chia
◼ Hiểu quy tắc thực hiện các phép toán số học (cộng, trừ, nhân, chia) trên số
nguyên trong máy tính
◼ Hiểu cách thiết kế mạch nhân, chia cơ bản cho số nguyên trong máy tính