Chap2 2 mips isa control

6 16 0
Chap2 2 mips isa control

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

Thông tin tài liệu

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 3 CHƯƠNG 2 KIẾN TRÚC TẬP LỆNH MIPS CÁC LỆNH ĐIỀU KIỂN Mục tiêu • Chuyển từ ngôn ngữ 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 KIẾN TRÚC TẬP LỆNH MIPS: CÁC LỆNH ĐIỀU KIỂN Mục tiêu • Chuyển từ ngôn ngữ cấp cao (C) sang hợp ngữ MIPS • Sử dụng lệnh điều khiển (nhảy, rẽ nhánh) để điều kiển luồng chương trình u cầu • Xem cách dùng lệnh (set, branch, jump, load, store) slide file tham khảo [trang 4] • Nộp file code hợp ngữ đặt tên theo format [Bai*.asm] chứa thư mục Lab3_MSSV Kiểu lệnh R-type Op6 Rs5 Kiểu I-type Op6 Rs5 Kiểu J-type Op6 Rt5 Rt5 Rd5 Shamt5 F unction6 Immediate16 Immediate26 • Op (opcode) Mã lệnh, dùng để xác định lệnh thực thi (trong kiểu R, Op = 0) • Rs, Rt, Rd (register): Trường xác định ghi (trường ghi bit tương ứng với 32 ghi) • Shamt (shift amount): Xác định số bits dịch lệnh dịch bit • Function: Xác định tốn tử(operator hay cịn gọi lệnh) kiểu lệnh R • Immediate: Đại diện cho số trực tiếp, địa chỉ, offset Tập lệnh [tham khảo nhanh] Cú pháp slt Rd, Rs, Rt sltu Rd, Rs, Rt beq Rs, Rt, label bne Rs, Rt, label bltz Rs, label blez Rs, label bgtz Rs, label bgez Rs, label j label jr Rs jal label jalr Rs Ảnh hưởng Rd = (Rs < Rt) ? : Rd = (Rs < Rt) ? : Mơ tả [Có dấu]Rd = Rs < Rt, ngược lại Rd = [Không dấu] Rd = Rs < Rt, ngược lại Rd = Lệnh nhảy, rẽ nhánh if (Rs == Rt) PC ← label Rẽ nhánh đến label Rs == Rt if (Rs != Rt) PC ← label Rẽ nhánh đến label Rs != Rt if (Rs < 0) PC ← label Rẽ nhánh đến label Rs < if (Rs if (Rs >= 0) PC ← label Rẽ nhánh đến label Rs >= PC ← label Nhảy không điều kiện đến label Gọi hàm PC ← Rs Trở vị trí ghi Rs trỏ đến $ra ← PC+4, PC ← label Gọi hàm label, $ra nắm vị trí lệnh $ra ← PC+4, PC ← Rs Gọi hàm Rs trỏ đến, $ra nắm vị trí lệnh Bài tập Thực hành Lập trình có cấu trúc Sinh viên chuyển cấu trúc sau ngơn ngữ C qua ngơn ngữ assembly Tham khảo hình ảnh cấu trúc cuối thực hành Bài 1: Phát biểu IF-ELSE (1) if( a % == 0) { Print string: "Computer Science and Engineering, HCMUT"} else { Print string: "Computer Architecture 2019"} Bài 2: Phát biểu IF-ELSE (2) if( a >= -3 && a RT4:0 MFLO RD RD = LO MTHI RS HI = RS LL RD, OFF16(RS) RD = MEM32(RS + OFF16 ±); LINK MTLO RS LO = RS SC RD, OFF16(RS) IF ROTRR2 RD, RS, BITS5 SRL RD, RS, SHIFT5 RD = RS∅ >> SHIFT5 SRLV RD, RS, RT RD = RS∅ >> RT4:0 Copyright © 2008 MIPS Technologies, Inc All rights reserved RS, RT RD = RS ± × RT± ± BLTZAL RS, OFF18 ± MULTIPLY AND DIVIDE OPERATIONS (OVERFLOW TRAP) JUMPS AND BRANCHES (NOTE: ONE DELAY SLOT) AND ACC = RS∅ × RT∅ ACCUMULATOR ACCESS OPERATIONS + OFF16±) = RS ATOMIC READ-MODIFY-WRITE OPERATIONS ATOMIC, MEM32(RS + OFF16 ±) = RD; RD = ATOMIC ? : MD00565 Revision 01.01 REGISTERS zero at READING THE CYCLE COUNT REGISTER FROM C Always equal to zero Assembler temporary; used by the assembler 2-3 v0-v1 Return value from a function call 4-7 a0-a3 First four parameters for a function call 8-15 t0-t7 Temporary variables; need not be preserved 16-23 s0-s7 Function variables; must be preserved 24-25 t8-t9 Two more temporary variables 26-27 k0-k1 Kernel use registers; may change unexpectedly unsigned mips_cycle_counter_read() { unsigned cc; asm volatile("mfc0 %0, $9" : "=r" (cc)); return (cc

Ngày đăng: 08/04/2023, 06:22

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

Tài liệu liên quan