Hỏi/ Thắc mắc - Về kiến trúc máy tính | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Hỏi/ Thắc mắc Về kiến trúc máy tính

Chào các ace và các bạn, mình đang học kiến trúc máy tính mà có bài tập làm hoài chưa hiểu mong mọi người chỉ giáo, Xin cảm ơn.
Bài tập như sau:
Giá trị thanh ghi $t2 sẽ là bao nhiêu sau khi chạy xong câu lệnh này?
Ta có:
$t0 = 1111 1111 1111 1111 1111 1111 1011 1111
$t1 = 1111 1111 1111 1111 1111 0000 1100 0000

slt $t2, $t0, $t1 (1)
beq $t2, $zero, ELSE (2)
add $t2, $t2, $t0 (3)
J DONE (4)
ELSE: add $t2, $t2, $t1 (5)
DONE:
P/S: Mình được thầy giáo gợi ý là: $t0 = -65 và $t1 = -3904 nhưng cũng không được hiểu là tại sao lại có giá trị như vậy, mong mọi người chỉ giúp, xin cảm ơn.
 

nhoxboy2010

Rìu Sắt Đôi
Do bit MSB của 2 thanh ghi t0 và t1 là 1 nên sẽ là số âm. Bạn dùng pp bù 2 để tính 2 giá trị của thanh ghi thì sẽ lần lượt ra $t0 = -65 và $t1 = -3904. Bạn tham khảo thêm tại đây https://vi.wikipedia.org/wiki/Bù_2 để tính bù 2.

Ở (1), vì t0 > t1 nên t2 =0.
(2) Sẽ so sánh giá trị trong thanh ghi t2 với thanh ghi zero ( luôn là 0). Nếu bằng nhau thì nhảy tới nhãn ELSE, ko thì thực hiện lệnh 3.
Do giá trị 2 thanh ghi bằng nhau nên sẽ nhảy xuống ELSE thực hiện lệnh (5)
Tại (5), cộng giá trị 2 thanh ghi t2 và t1 rồi sau đó lưu giá trị vào t2. Do t2 bằng 0 nên giá trị cuối cùng của thanh ghi t2 sẽ là giá trị của t1.
 

alonsogaylord

Búa Gỗ
Do bit MSB của 2 thanh ghi t0 và t1 là 1 nên sẽ là số âm. Bạn dùng pp bù 2 để tính 2 giá trị của thanh ghi thì sẽ lần lượt ra $t0 = -65 và $t1 = -3904. Bạn tham khảo thêm tại đây https://vi.wikipedia.org/wiki/Bù_2 để tính bù 2.

Ở (1), vì t0 > t1 nên t2 =0.
(2) Sẽ so sánh giá trị trong thanh ghi t2 với thanh ghi zero ( luôn là 0). Nếu bằng nhau thì nhảy tới nhãn ELSE, ko thì thực hiện lệnh 3.
Do giá trị 2 thanh ghi bằng nhau nên sẽ nhảy xuống ELSE thực hiện lệnh (5)
Tại (5), cộng giá trị 2 thanh ghi t2 và t1 rồi sau đó lưu giá trị vào t2. Do t2 bằng 0 nên giá trị cuối cùng của thanh ghi t2 sẽ là giá trị của t1.
Vote
 
Do bit MSB của 2 thanh ghi t0 và t1 là 1 nên sẽ là số âm. Bạn dùng pp bù 2 để tính 2 giá trị của thanh ghi thì sẽ lần lượt ra $t0 = -65 và $t1 = -3904. Bạn tham khảo thêm tại đây https://vi.wikipedia.org/wiki/Bù_2 để tính bù 2.

Ở (1), vì t0 > t1 nên t2 =0.
(2) Sẽ so sánh giá trị trong thanh ghi t2 với thanh ghi zero ( luôn là 0). Nếu bằng nhau thì nhảy tới nhãn ELSE, ko thì thực hiện lệnh 3.
Do giá trị 2 thanh ghi bằng nhau nên sẽ nhảy xuống ELSE thực hiện lệnh (5)
Tại (5), cộng giá trị 2 thanh ghi t2 và t1 rồi sau đó lưu giá trị vào t2. Do t2 bằng 0 nên giá trị cuối cùng của thanh ghi t2 sẽ là giá trị của t1.
Cảm ơn bạn đã hướng dẫn.
 


Top