(TIỂU LUẬN) báo cáo CUỐI kì môn THỰC HÀNH KIẾN TRÚC máy TÍNH

31 6 0
(TIỂU LUẬN) báo cáo CUỐI kì môn THỰC HÀNH KIẾN TRÚC máy TÍNH

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Phạm Minh Thống - 20205029 BÁO CÁO CUỐI KÌ MƠN THỰC HÀNH KIẾN TRÚC MÁY TÍNH BTCK 2: Mơ tả tốn: Vẽ bóng hình mơ Bitmap Quả bóng di chuyển phụ thuộc vào phím người dùng bấm vào giả lập MMIO Nhấn w, s, a, d di chuyển lên, xuống, trái, phải Nếu chạm vào biên bóng bật lại Tốc độ khơng đổi Phương pháp giải tốn: Đầu tiên phải vẽ bóng, cách tơ màu đường trịn màu vàng Tức ta tơ màu loạt pixel hình mơ Bitmap tạo đường tròn màu vàng + Cách tạo đường trịn: + Ta cần tơ màu viền tròn bên điểm bên màu vàng, ta thu đường tròn vàng ● Vòng ngồi: từ dịng đến 51 ● Vịng trong: từ dịng đến 46 + Trong hình ta thấy: ● D1 điểm bên trái đường tròn bên ● D2 điểm cuối bên phải đường trịn bên ngồi ● C1 điểm bên trái đường tròn bên ● C2 điểm cuối bên phải đường bên + Cách tô: Tô từ xuống dưới, tô dịng, tơ pixel từ trái sang phải ● Từ dịng -> : Tơ màu từ D1 đến C1 ● Từ dịng -> 46 : Tơ màu từ D1 đến D2 từ C2 đến C1 ● Từ 47 -> 51: Tô màu từ D1 đến C1 Phạm Minh Thống - 20205029 Tiếp theo người dùng nhập ký tự (w, a, s, d) vào MMIO bóng di chuyển Để di chuyển bóng ta vẽ bóng vị trí xóa bóng vị trí cũ (chính tơ màu bóng cũ giống màu nền) Vị trí bóng tùy thuộc vào người dùng nhập ký tự + Vị trí xác định sau: ● Nếu w: Vị trí = Vị trí cũ - 512 Tức dịch lên dịng, dịng có 512 pixel Khi trừ 512 dịch lên dịng ● Nếu s: Vị trí = Vị trí cũ + 512 Tức dịch xuống dịng ● Nếu a: Vị trí = Vị trí cũ - Dịch trái cột ● Nếu d: Vị trí = Vị trí cũ + Dich phải cột Khi chạm vào viền đập ngược lại + Chẳng hạn di chuyển lên mà chạm viền chuyển sang chế độ di chuyển xuống ngược lại + Còn di chuyển sang trái mà chạm viền chuyển sang phải ngược lại Code MIPS assembly giải thích code: Giải thích code bên trên: Khai báo gán giá trị Dòng 1, 10, 11, 14, 15 : mang giá trị địa đầu vào công cụ bitmap, giả lập MMIO Dịng 3, 4, 6, 7: vị trí bắt đầu vẽ bóng Giải thích code bên trên: Em thường comment lại ghi sử dụng chức xuyên suốt đoạn code lớn lên đầu để dễ đối chiếu xem xét Phạm Minh Thống - 20205029 Giải thích code bên trên: - Gán k0 = địa bắt đầu hình bitmap Cho biến số dòng s0 = Lưu địa điểm đầu stack vào t8 Giải thích code bên trên: Gán D1 vào s1, D2 vào s2, C1 vào s3, C2 vào s4 Gán D1 vào s5, D2 vào S6 để tô màu từ trái (D1) sang phải (D2) Sau lần tơ màu xong dịng tăng giá trị biến s0 (biến đếm số dòng) Phạm Minh Thống - 20205029 Giải thích code bên trên: main_ele_circle_1: Ở ta dùng biến đếm dòng s0 để xác định dịng cần tơ màu chuyển đến hàm xác định điểm D1, C1 dịng cần tơ màu sau chuyển đến hàm main_ele_circle_2 Phạm Minh Thống - 20205029 Phạm Minh Thống - 20205029 Giải thích code bên trên: main_ele_circle_2: Ở ta dùng biến đếm dòng s0 để xác định dịng cần tơ màu chuyển đến hàm xác định điểm D2, C2 dịng cần tơ màu Đến ta xác định D1, C1, D2, C2 => chuyển đến hàm tơ màu Giải thích code bên trên: main_color: dùng s0 để xác định dòng cần tô màu chuyển đến hàm tô màu thích hợp + Từ 1-> 47 -> 51: Chỉ cần tô màu từ D1 đến C1 + Từ -> 46: Cần tô từ D1 đến D2 C2 đến C1 Vì khoảng trống bên đường trịn khơng cần tơ, tức khơng cần tơ D2 đến C2 Giải thích code bên trên: - main_color-1: Tơ màu từ D1 đến C1 => Gán D1, C1 vào biến s5, s6 (2 tham số hàm tô màu) sau chuyển đến hàm tơ màu Phạm Minh Thống - 20205029 Giải thích code bên trên: - main_color-2: Tô màu từ D1 đến D2 từ C2 đến C1 => Gán D1, D2 vào biến s5, s6 (2 tham số hàm tơ màu) sau chuyển đến hàm tơ màu => Sau gán C2, C1 vào biến s5, s6 (2 tham số hàm tơ màu) sau chuyển đến hàm tơ màu Giải thích code bên trên: main_raise: Kiểm tra dịng vừa tơ dịng 51 khỏi hàm main khơng tăng số dịng tiếp tục tơ màu Giải thích code bên trên: - main_ele_1, main_ele_3, main_ele_4, main_ele_5: Chuyển đến cách tính D1, C1 tương ứng, sau nhảy đến main_ele_circle_2 Phạm Minh Thống - 20205029 Giải thích code bên trên: main_element_0, main_element_1, main_element_2, main_element_3: Chuyển đến cách tính D2, C2 tương ứng, sau nhảy đến main_color Giải thích code bên trên: theo Cal_0, Cal_1, Cal_2, Cal_4: Tính D1, C1 dịng cần tơ màu tiếp Phạm Minh Thống - 20205029 Giải thích code: Với vị trí giới hạn biên s0 tính sẵn trường hợp: + Trên: 22 -> 483 + Dưới: 236054 -> 236515 + Trái: Khi cộng thêm 29 chia hết cho 512 + Phải: Khi cộng thêm 490 chia hết cho 512 Phạm Minh Thống - 20205029 BTCK 9: Mô tả tốn: - Cho hình chữ DCE với viền ký tự * màu số Hãy hồn thành u cầu sau: + Hiển thị hình ảnh giao diện console + Sửa ảnh chữ cịn lại viền, khơng có màu hiển thị + Hoán đổi chữ thành ECD hiển thị + Nhập màu từ bàn phím cho D, C, E hiển thị Phương pháp giải toán: - Chia ảnh làm phần phần D, C E Tiến hành lưu phần vào biến: phần D lưu vào biến image_D, phần C lưu vào image_C, phần E lưu vào image_E + Cách lưu: ● Lưu dòng vào biến, dòng ngăn cách ký tự ‘\n’, dùng ký tự ‘?’ để biểu thị việc kết thúc phần (tức hết ký tự) ● Các chỗ trống ảnh cần sử dụng chuỗi ký tự space (‘ ‘) để thể Yêu cầu thứ nhất: + Để in hình ảnh giao diện console, ta dựa vào cách lưu vào biến image_D, image_C, image_E + Ý tưởng: ● In dòng image_D, image_C, image_E in hết toàn ký tự biến ● Nói cách khác in dịng thứ biến image_D, image_C, image_E xuống dịng, sau in dịng thứ hai biến image_D, image_C, image_E xuống dịng, sau … Đến hết gặp ký tự ‘?’ thể việc hết ký tự Yêu cầu thứ hai: + Để sửa ảnh chữ cịn lại viền, khơng có màu ta việc thay ký tự màu ký tự space (‘ ‘) + Vẫn dùng cách duyệt yêu cầu thứ + Thêm bước kiểm tra ký tự màu thay Phạm Minh Thống - 20205029 - - Yêu cầu thứ ba: + Giống yêu cầu thứ ta thay thứ tự in biến thành image_E, image_C, image_D Yêu cầu thứ tư: + Yêu cầu người dùng nhập màu cho chữ + Sau kiểm tra tính hợp lệ màu vừa nhập + Giống yêu cầu thứ hai, kiểm tra ký tự màu thay ký tự thích hợp người dùng nhập nhập Code MIPS assembly giải thích code: Giải thích code: - Dịng -> + Gán dòng biểu diễn chữ D vào biến image_D, dòng ngăn cách ký tự ‘\n’, cuối image_D thêm ký tự ‘?’ để xác định hết ký tự + Tương tự với C E lưu vào image_C image_E Dòng -> 8: Các title cần hiển thị người dùng biết nên nhập Dịng 10 -> 12: Khai báo biến row_D, row_C, row_E với khơng gian 100 byte Dịng 14 -> 21: Tạo cấu trúc menu để dễ dàng kiểm tra yêu cầu Phạm Minh Thống - 20205029 Giải thích code: - Comment lại ghi sử dụng với chức không thay đổi suốt đoạn code lớn hay tồn code Giải thích code: - Tạo menu cách hiển thị chuỗi ký tự khởi tạo sẵn Sử dụng chức syscall với v0 =4 in chuỗi địa a0 Giải thích code: - Gán địa biến vào ghi xác định để chuẩn bị cho bước Phạm Minh Thống - 20205029 Giải thích code: - Người dùng nhập số nguyên để thể yêu cầu muốn kiểm tra Với chức syscall, v0 = cho phép đọc số nguyên mà người dùng nhập - Dòng 95 -> 100: Để xác định lựa chọn người dùng tiến hành thực Nếu lựa chọn không xác định quay lại menu Giải thích code: - - main_1: bắt đầu thực yêu cầu DD_loop_1: Thực lưu dòng image_D vào row_D + Lần lượt gán ký tự biến image_D vào t1 + Nếu t1 ký tự ‘\n’ ‘?’ lưu vào biến row_D + Nếu ‘\n’ nhảy tới back_row_D_1 + Nếu ‘?’ hồn thành hiển thị, khỏi yêu cầu back_row_D_1: Hiển thị row_D hình Phạm Minh Thống - 20205029 Giải thích code: - Tương tự D, ta row_C row_E Hiển thị row_C, row_E xuống dòng Nhảy lại DD_loop_1 để tiếp tục hiển thị row_D gặp ‘?’ Giải thích code: - main_2: bắt đầu thực yêu cầu DD_loop_2: Giống DD_loop_1 trước lưu ký tự vào row_D thực nhảy đến check_int_2 để kiểm tra ký tự vừa load vào t1 xem có phải ký tự màu không Phạm Minh Thống - 20205029 Giải thích code: - Tương tự D, ta row_C row_E Hiển thị row_C, row_E xuống dòng Nhảy lại DD_loop_2 để tiếp tục hiển thị row_D gặp ‘?’ Giải thích code: - check_int_2: Kiểm tra xem t1 có phải ký tự số (‘0’ đến ‘9’) hay khơng Nếu thay ký tự space (‘ ’) Phạm Minh Thống - 20205029 Giải thích code: - main_3: bắt đầu thực yêu cầu main_3 cấu trúc giống main_1, thay hiển thị theo ký tự theo thứ tự D, C, E main_1 main_3 lại hiển thị E, C, D Phạm Minh Thống - 20205029 Phạm Minh Thống - 20205029 Giải thích code: main_4: Bắt đầu thực yêu cầu Dùng chức syscall với v0 = để in chuỗi thông báo người dùng nên nhập màu vào cho ký tự D, C, E Dùng chức syscall với v0 = 12 để đọc ký tự người dùng nhập từ bàn phím Đây màu ký tự Sau nhảy đến check_color_4 để kiểm tra xem ký tự màu có hợp lệ hay không Phạm Minh Thống - 20205029 Giải thích code: DD_loop_4: Giống DD_loop_2, có thêm lệnh nhảy đến hàm check_int_4 để kiểm tra xem có phải ký tự màu hay khơng Nếu phải tiến hành thay màu với màu người dùng nhập vào DC_loop_4, DE_loop_4 tương tự DD_loop_4 Giải thích code: - Check_int_4: Nếu ký tự màu (từ ‘0’ đến ‘9’) tiến hành đổi màu Phạm Minh Thống - 20205029 Giải thích code: check_color_4: Dùng để kiểm tra màu người dùng nhập vào có hợp lệ hay khơng Nếu ký tự số (từ ‘0’ đến ‘9’) tiếp tục, khơng phải bắt người dùng nhập lại màu hàm error_color Giải thích code: - Convert_color_4: Dùng t1 để xác định màu cần thay cho ký tự Sau nhảy đến hàm thay màu bên tương ứng bên Giải thích code: - Convert_color_D_4: chuyển màu cho ký tự D Convert_color_C_4: chuyển màu cho ký tự C Convert_color_E_4: chuyển màu cho ký tự E Phạm Minh Thống - 20205029 Giải thích code: - Đây hàm dùng chung code yêu cầu + print_endl: Dùng để xuống dòng + print_row: Dùng để in dịng + complete: Khi hồn thành u cầu quay lại menu + exit_pro: Thốt khỏi chương trình Phạm Minh Thống - 20205029 Kết quả: - Yêu cầu thứ nhất: - Yêu cầu thứ hai Phạm Minh Thống - 20205029 - Yêu cầu thứ ba - Yêu cầu thứ tư (màu chữ số cuối mssv em) ... 100: Để xác định lựa chọn người dùng tiến hành thực Nếu lựa chọn khơng xác định quay lại menu Giải thích code: - - main_1: bắt đầu thực yêu cầu DD_loop_1: Thực lưu dòng image_D vào row_D + Lần lượt... trên: theo Cal_0, Cal_1, Cal_2, Cal_4: Tính D1, C1 dịng cần tơ màu tiếp Phạm Minh Thống - 20205029 Giải thích code bên trên: Calcu_0, Calcu_1, Calcu_2, Calcu_3: Tính D2, C2 dịng cần tơ màu Giải thích... vàng Đổi màu từ đầu ngăn xếp đến cuối ngăn xếp (từ xuống đường trịn) convert_color_ele: Lần lượt lấy vị trí từ ngăn xếp ra, đổi màu màu nền, cộng thêm s1 để tạo thành vị trí mới, lưu vào ngăn xếp

Ngày đăng: 02/12/2022, 08:34

Hình ảnh liên quan

- Gán k0 = địa chỉ bắt đầu của màn hình bitmap - (TIỂU LUẬN) báo cáo CUỐI kì môn THỰC HÀNH KIẾN TRÚC máy TÍNH

n.

k0 = địa chỉ bắt đầu của màn hình bitmap Xem tại trang 4 của tài liệu.
- check_border: Lấy vị trí đầu tiên trên cùng bên trái của hình trịn để - (TIỂU LUẬN) báo cáo CUỐI kì môn THỰC HÀNH KIẾN TRÚC máy TÍNH

check.

_border: Lấy vị trí đầu tiên trên cùng bên trái của hình trịn để Xem tại trang 16 của tài liệu.
- Cho hình chữ DCE với viền là các ký tự * và màu là các con số -Hãy hoàn thành 4 yêu cầu sau: - (TIỂU LUẬN) báo cáo CUỐI kì môn THỰC HÀNH KIẾN TRÚC máy TÍNH

ho.

hình chữ DCE với viền là các ký tự * và màu là các con số -Hãy hoàn thành 4 yêu cầu sau: Xem tại trang 18 của tài liệu.
+ Hiển thị hình ảnh ra giao diện console - (TIỂU LUẬN) báo cáo CUỐI kì môn THỰC HÀNH KIẾN TRÚC máy TÍNH

i.

ển thị hình ảnh ra giao diện console Xem tại trang 18 của tài liệu.
Giải thích code: - (TIỂU LUẬN) báo cáo CUỐI kì môn THỰC HÀNH KIẾN TRÚC máy TÍNH

i.

ải thích code: Xem tại trang 21 của tài liệu.
- back_row_D_1: Hiển thị row_D ra màn hình - (TIỂU LUẬN) báo cáo CUỐI kì môn THỰC HÀNH KIẾN TRÚC máy TÍNH

back.

_row_D_1: Hiển thị row_D ra màn hình Xem tại trang 21 của tài liệu.

Tài liệu cùng người dùng

Tài liệu liên quan