-
Mọi người có thể cho mình hỏi thanh ghi MAR (Memory Address Register) hay MDR (Memory Data Register) giống hay khác như thế nào với khái niệm thanh ghi trong ngôn ngữ MIPS không.
Mình học thì MIPS có 32 thanh ghi (xem thêm ở sheet MIPS reference data), nhưng khi xem giáo trình tham khảo thì CPU có thanh ghi MAR/MDR mà không thuộc 32 thanh ghi trên nên mình không hiểu. -
Ngoài ra thì khi mình học, có đụng đến lệnh sw là lệnh chuyển dữ liệu từ thanh ghi ra bộ nhớ. Nhưng mình không hiểu đã chuyển sang "bộ nhớ " thì tại sao ta vẫn đang thực hiện các phép toán trên “thanh ghi”.
Ví dụ trong slide bài giảng của trường mình có ghi: sw $s1, 20($2) - có nghĩa là:
-
$s1: thanh ghi chứa dữ liệu cần lưu
- Một hằng số (20) và thanh ghi ($s2) được sử dụng để truy cập
vào bộ nhớ. Tổng số của hằng số và nội dung của thanh ghi
này là địa chỉ bộ nhớ, nơi mà nội dung đang chứa trong thanh
ghi $s1 sẽ được lưu vào đây. Mình tự hỏi là tại sao thanh ghi dời đi 20 thì sẽ trở thành địa chỉ bộ nhớ (RAM) được??
Mình có hiểu sai hay chưa biết chỗ nào không, mong mọi người chỉ dẫn lại giúp mình. Mình cảm ơn m.n.