CO2008 KIẾN TRÚC MÁY TÍNH Khoa Khoa Học và Kỹ Thuật Máy Tính Đại học Bách Khoa – Tp HCM 08/2019 Bài tập/Thực hành 5 CHƯƠNG 2/3 KIẾN TRÚC TẬP LỆNH MIPS SỐ THỰC Mục tiêu • Kiến thức về số thực chính xác[.]
CO2008 - KIẾN TRÚC MÁY TÍNH Khoa Khoa Học Kỹ Thuật Máy Tính Đại học Bách Khoa – Tp.HCM 08/2019 Bài tập/Thực hành CHƯƠNG 2/3 KIẾN TRÚC TẬP LỆNH MIPS: SỐ THỰC Mục tiêu • Kiến thức số thực xác đơn, xác kép • Sử dụng lệnh số thực lập trình hợp ngữ MIPS • Sử dụng plug-in số thực MARS (Tool/floating point representation) Yêu cầu • Xem định dạng số thực chuẩn IEEE 754 • Xem cách dùng lệnh số thực trong slide file tham khảo • Nộp file code hợp ngữ đặt tên theo format [Bai*.asm] chứa thư mục Lab5_MSSV Bài tập Thực hành Bài 1: Số thực IEEE 754 (a) Xác định giá trị số thực chứa ghi có nội dung 0xCA201900 (b) Xác định nội dung ghi mà giá trị số thực 36.15625 (c) Có thể biểu diễn xác giá trị 20.2 dạng IEEE khơng? giải thích Khoảng cách số thực liên tiếp (biểu diễn IEEE 754) có khơng? giải thích Bài 2: Viết chương trình nhập vào bán kính đường trịn (số thực) Xuất chu vi diện tích hình trịn (chú ý trường hợp số âm zero) Bài 3: Cho mảng số thực 20 phần tử, xác định giá trị lớn nhất, nhỏ mảng Tập lệnh [tham khảo nhanh] Cú pháp Ảnh hưởng Mô tả ldc1 $f0, 8($t0) swc1 $f0, 4($t4) Đại số $f0 = $f1 + $f2 ($f0,$f1) = ($f2, $f3) + ($f4, $f5) $f0 = $f1 - $f2 $f0 = $f1 * $f2 $f0 = $f1 / $f2 $f0 := |$f1| $f0 := - $f1 Memory Transfer Instructions $f0 = Mem[ $t4 + ]; $f1 = Mem[ $t4 + ] $f0 = Mem[ $t4 + ] mtc1 $t0, $f0 Data Transfer between registers $f0 = $t0 mfc1 $t0, $f0 $t0 = $f0 c.eq.s $f2, $f4 c.le.s $f2, $f4 c.lt.s $f2, $f4 bc1f label bc1t label if if if if if addi.s $f0, $f1, 2.3 add.d $f0, $f2, $f5 MỘT SỐ LỖI THƯỜNG GẶP ERROR ILLEGAL in MIPS 32, because f5 is odd add.s add.d sub.s mul.s div.s abs.s neg.s $f0, $f0, $f0, $f0, $f0, $f0, $f0, $f1, $f2, $f1, $f1, $f1, $f1 $f1 $f2 $f4 $f2 $f2 $f2 Conditional Jumps/branch f ==f4 then code = else code = f