Professional Documents
Culture Documents
Bùi Đ C Dũng - 20204954
Bùi Đ C Dũng - 20204954
ASSIGNMENT 1:
Khởi tạo dữ liệu cho mảng A và gán địa chỉ cơ sở của mảng A cho thanh
ghi $a0. Gán số phần tử của mảng A cho thanh ghi $a1 và nhảy đến thủ
tục mspfx.
Khởi tạo giá trị độ dài, tổng, biến đếm, và tổng chạy bằng 0
Lưu địa chỉ của từng phần tử trong mảng vào thanh ghi $t3 và load giá trị ở thanh ghi
$t3 vào thanh ghi $t4 . ( indexing method)
….
Sau mỗi bước load giá trị vào $t4 ta cộng giá trị trong $t4 vào tổng chay rồi so
sánh với tổng được lưu trong $v1 . Nếu tổng max nhỏ hơn thì ta chuyển đến bước
sửa đổi kết quả mdfy . Ngược lại nếu tổng max vẫn lớn hơn thì ta chuyển đến bước
kiểm tra xem biến đếm đã vượt qua số phần tử của mảng chưa .
mdfy :
Test :
Kết quả :
Assignment 2 :
Khởi tạo giá trị cho mảng đồng thời gán địa chỉ cơ sở của mảng cho thanh ghi $a0 và địa
chỉ của phần tử cuối cùng cho thanh ghi $a1 và nhảy đến thủ tục sort .
Sort :
Kiểm tra điều kiện chỉ còn 1 phần tử . Nếu đúng thì nhảy ra done nếu không thì
chuyển đến thủ tục max .
Tìm max :
Load lần lượt phần tử đầu tiên vào thanh ghi $v1 . ( gán ,là max )
Trong vòng loop kiểm tra điều kiện phần tử chuối nếu là phần tử cuối thì thoát luôn:
Nếu chưa phải phần tử cuối thì so sánh lần lượt phần tử đầu với các phần tử sau . Phần
tử nào lớn hơn thì gán lại vào max :
Sau lần tìm max đầu tiên được max = 8 ( đúng )
Sau khi tìm xong max thì nhảy đến thủ tục after_max
Load phần tử cuối cùng vào thanh ghi $t0
Gán phần tử cuối cùng vào vị trí max và phần tử max vào vị trí cuối cùng .
Sau đó giảm con trỏ đến phần tử cuối cùng và tiếp tục quay lại thủ tục sort .
Assignment 3:
Bubble Sort:
➔Kết quả :
→Giải thích :
Lưu địa chỉ cơ sở của mảng vào thanh ghi $s0, khởi tạo 2 biến đếm vào 2 thanh ghi $t0,
$t1 , lưu
số phần tử vào thanh ghi $s1 . 2 thanh ghi $t2, $t3
Sau mỗi vòng lặp lớn thì số lượng lần so sánh giảm đi 1 đồng thời ta reset lại cho
thanh ghi $t3 về địa chỉ cơ sở của mảng để so sánh lại từ đầu .
….
Nếu số sau $s4 > số trước $s3 thì ta rẽ nhánh đến kiểm tra điều kiện biến đếm j = n-
i-1 . Nếu
chưa đến thì tiếp tục load và so sánh tiếp .
ASSIGNMENT 4 :
Insert sort:
Thuật toán :
➔Kết quả :
Giải thích :
Gán địa chỉ cơ sở của chuỗi cho thanh ghi $a0 và số phần tử cho thanh ghi $a1 .
Khởi tạo biến đếm vòng lặp ngoài i = 1 :
Trong vòng lặp to đầu tiên kiểm tra điều kiện giá trị đếm i trong thanh ghi $t0 đã
chạm đến tổng số phần tử chưa . Rồi sau đó load lần lượt các phần tử Arr[i] ( I bắt đầu
từ 1) vào thanh ghi
$t5
Kiểm tra điều kiện j > 0 lưu kết quả vào $t4 nếu sai thì rẽ nhánh ra ExitInnerLoop :
Load phần tử A[j] vào thanh thi $t4 ( ở đây là phần tử A[0] do
A[i] = A[1]) So sánh với phần tử đang cần tìm vị trí nếu nhỏ hơn
thì exitInnerLoop
Ngược lại lưu phần tử đó vào đúng vị trí của phần tử cần tìm vị trí và tiếp tục vòng
lặp
Kết thúc vòng lặp con ta được giá trị của phần tử cần tìm vị trí và lưu nó vào vị trí phù
hợp bởi thanh ghi $t7
In ra kết quả :