Bài giảng Kiến trúc máy tính - Chương 2: Kiến trúc bộ lệnh

53 16 0
Bài giảng Kiến trúc máy tính - Chương 2: Kiến trúc bộ lệ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

Bài giảng Kiến trúc máy tính - Chương 2: Kiến trúc bộ lệnh cung cấp cho người đọc các kiến thức: Giới thiệu, các phép tính, toán hạng, số có dấu và không dấu, biểu diễn lệnh, các phép tính Logic, các lệnh điều kiện và nhảy. Mời các bạn cùng tham khảo nội dung chi tiết.

Chương 02 – Kiến trúc lệnh Mục tiêu chương: Hiểu cách biểu diễn lệnh máy tính, cách lệnh thực thi Chuyển đổi lệnh ngôn ngữ cấp cao sang assembly mã máy Chuyển đổi lệnh mã máy sang ngôn ngữ cấp cao Biết cách lập trình ngơn ngữ assembly cho MIPS CE Chương 02 – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy Giới thiệu CE  Để lệnh cho máy tính ta phải nói với máy tính ngơn ngữ máy tính Các từ ngơn ngữ máy tính gọi lệnh (instructions) tập hợp tất từ gọi lệnh (instruction set)  Bộ lệnh chương MIPS, lệnh kiến trúc máy tính thiết kế từ năm 1980 Cùng với lệnh thông dụng ngày nay:  ARM giống MIPS  The Intel x86, CE Chương 02 – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy CE Phép tính (Operations) Ví dụ: add a, b, c  Chỉ dẫn cho máy tính thực cộng biến a với b ghi kết vào biến c, c= a + b Phép tính (operations) Tốn hạng (operands) Phép tính (Operations) Ví dụ Ví dụ C/Java a = b + c; d = a – e; f = (g + h) – (i + j); MIPS add a, b, c sub d, a, e C/Java add t0, g, h add t1, i, j sub f, t0, t1 MIPS CE Ví dụ số lệnh MIPS CE Chương 02 – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu không dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy Tốn hạng CE Có loại tốn hạng: Tốn hạng ghi (Register Operands) Toán hạng nhớ (Memory Operands) Toán hạng (Constant or Immediate Operands) CE Tốn hạng Tốn hạng ghi:  Khơng giống chương trình ngơn ngữ cấp cao, toán hạng lệnh số học bị hạn chế, chúng phải đặt vị trí đặc biệt xây dựng trực tiếp phần cứng gọi ghi (số lượng ghi có giới hạn: MIPS32, ARM Cortex A8-40)  Kích thước ghi kiến trúc MIPS 32 bit; nhóm 32 bit xuất thường xuyên nên chúng đặt tên “từ” (word) kiến trúc MIPS (lưu ý: “từ” kiến trúc lệnh khác khơng có 32 bit)  Một khác biệt lớn biến ngơn ngữ lập trình biến ghi số giới hạn ghi, thường 32 máy tính 10 Biểu diễn lệnh CE Kết luận: Các lệnh biểu diễn số Chương trình lưu trữ nhớ đọc hay viết giống số  Xem lệnh liệu cách tốt để đơn giản hóa nhớ phần mềm máy tính  Để chạy/thực thi chương trình, đơn giản cần nạp chương trình liệu vào nhớ; sau báo với máy tính để bắt đầu thực thi chương trình vị trí mà cấp phát 39 CE Chương 02 – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy 40 CE Các phép tính Logic MIPS khơng hỗ trợ lệnh NOT trực tiếp Vì vậy, muốn sử dụng NOT ghi ta dùng lệnh NOR ghi với ghi zero Hình 7: C Java phép tính logic lệnh MIPS tương ứng Chú ý: Một số simulator có lệnh NOT, lệnh giả, thực hiện,  Shift: Lệnh dịch chuyển bit thật NOR ghi với  AND: phép toán logic “VÀ” zero  OR: phép toán logic “HOẶC”  NOT: kết bit ngược lại  NOR: NOT OR  Hằng số hữu ích phép toán logic AND OR phép tính số học, MIPS cung cấp lệnh trực tiếp andi ori 41 CE Chương 02 – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu không dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy 42 CE Các lệnh điều kiện nhảy Một máy tính (PC) khác với máy tính tay (calculator) dựa khả đưa định Trong ngơn ngữ lập trình, đưa định thường biểu diễn cách sử dụng câu lệnh “if”, kết hợp với câu lệnh “go to” Ngôn ngữ Assembly MIPS chứa lệnh hỗ trợ định, tương tự với câu lệnh "if" “go to" Ví dụ: beq register1, register2, L1 Lệnh có nghĩa đến câu lệnh có nhãn L1 giá trị ghi register1 giá trị ghi register2 Từ ‘beq’ viết tắt “branch if equal” (rẽ nhánh bằng)  Các lệnh ‘beq’ gọi lệnh rẽ nhánh có điều kiện 43 CE Các lệnh điều kiện nhảy Các lệnh rẽ nhánh có điều kiện (conditional branch) MIPS: Ngồi cịn có lệnh rẽ nhánh có điều kiện khác, nhóm lệnh giả (pseudo instructions) 44 CE Các lệnh điều kiện nhảy Các lệnh rẽ nhánh không điều kiện (unconditional branch) MIPS: 45 Các lệnh điều kiện nhảy CE  Biên dịch if-then-else từ ngôn ngữ cấp cao sang assemply MIPS: Cho đoạn mã sau: if (i == j) f = g + h; else f = g – h; Biết f, g, h, i j biến Nếu năm biến f đến j tương ứng với ghi $s0 đến $s4, mã MIPS cho câu lệnh if gì? Trả lời: bne $s3,$s4,Else # go to Else if i != j add $s0, $s1, $s2 # f = g + h (skipped if i != j) j exit # go to Exit Else: sub $s0, $s1, $s2 # f = g – h (skipped if i = j) exit: 46 Các lệnh điều kiện nhảy CE  Biên dịch vịng lặp while từ ngơn ngữ cấp cao sang assemply MIPS Cho đoạn mã sau: while (save[i] == k) i += 1; Giả định i k tương ứng với ghi $s3 $s5; địa nền/cơ sở mảng save lưu $s6 Mã assembly MIPS tương ứng với đoạn mã C gì?  Trả lời: Loop: sll $t1,$s3,2 # Temp reg $t1 = * i add $t1,$t1,$s6 # $t1 = address of save[i] lw $t0,0($t1) # Temp reg $t0 = save[i] bne $t0,$s5, Exit # go to Exit if save[i] != k addi $s3,$s3,1 #i=i+1 j Loop # go to Loop Exit: 47 CE Chương 02 – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy 48 CE Chuyển đổi bắt đầu chương trình Bốn bước việc chuyển đổi chương trình C tập tin đĩa vào chương trình chạy máy tính Một hệ thống phân cấp chuyển đổi cho ngôn ngữ C 49 CE Câu hỏi tập chương  Chuyển mã assembly MIPS sang mã máy  Chuyển mã máy sang mã assembly MIPS  Chuyển dạng mã ngôn ngữ cấp cao sang dạng mã assembly MIPS ngược lại 50 CE Chuyển mã assembly MIPS sang dạng mã máy  add $t0, $s1, $s2  sub $s0, $s2, $s3  sll $s2, $s4, 12  addi $t0, $t0, -1  lw $s1, 32($s0)  sw $a0, 16($t0)  beq $t0, $0, 50 51 CE Chuyển mã máy sang dạng mã assembly MIPS  00001025hex  0005402Ahex  11000003hex  00441020hex  20A5FFFFhex  08100001hex 52 CE Chuyển dạng mã ngôn ngữ cấp cao sang dạng mã assembly MIPS  Chuyển dạng mã ngôn ngữ cấp cao sang dạng mã assembly MIPS, với a, b, c chứa ghi $t0, $t1, $t2; f,g,h chứa $s0, $s1, $s2; địa mảng B $s6 a = – b – c + 120 f = g + h + B[4] 53 ... ta phải nói với máy tính ngơn ngữ máy tính Các từ ngơn ngữ máy tính gọi lệnh (instructions) tập hợp tất từ gọi lệnh (instruction set)  Bộ lệnh chương MIPS, lệnh kiến trúc máy tính thiết kế từ...CE Chương 02 – Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu khơng dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy Giới thiệu CE  Để lệnh cho máy tính ta phải... Kiến trúc lệnh Giới thiệu Các phép tính Tốn hạng Số có dấu không dấu Biểu diễn lệnh Các phép tính Logic Các lệnh điều kiện nhảy 28 CE Biểu diễn lệnh  Làm lệnh (add $t0, $s1, $s2) lưu giữ máy tính?

Ngày đăng: 09/05/2021, 18:10

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

  • Đang cập nhật ...

Tài liệu liên quan