1. Trang chủ
  2. » Công Nghệ Thông Tin

KIẾN TRÚC MÁY TÍNH - Lệnh case (switch) ở ngôn ngữ bậc cao

22 902 4
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Lệnh case (switch) ở ngôn ngữ bậc cao
Trường học Hanoi University of Science and Technology
Chuyên ngành Computer Architecture
Thể loại Bài báo
Năm xuất bản 2011
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 491,32 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Chú ý: Khi xác định hiệu năng cần đếm số chỉ thị được thực thi chứ không phải kích thước mã chương trình.. Nhiệm vụ chính của assemblerbiểu tượng nhãn và địa chỉ tương ứng  1 biểu tượ

Trang 1

Lệnh case (switch) ở ngôn ngữ bậc cao

switch (k) {

case 0: h=i+j; break; /*k=0*/

case 1: h=i+h; break; /*k=1*/

case 2: h=i-j; break; /*k=2*/

 Giả sử 3 từ liên tiếp trong bộ nhớ bắt đầu từ địa chỉ lưu

trong $t4 chứa giá trị của các nhãn L0, L1, và L2 và k

L2 L1 L0

Memory

add $t1, $s2, $s2 #$t1 = 2*kadd $t1, $t1, $t1 #$t1 = 4*kadd $t1, $t1, $t4 #$t1 = addr of JumpT[k]

Trang 2

Gọi hàm hoặc thủ tục

1 Hàm chính (hàm gọi, caller ) đặt các tham số vào vị trị

mà thủ tục (hàm bị gọi, callee ) có thể truy cập

2 Hàm gọi chuyển quyền điều khiển cho hàm bị gọi

 $v0 - $v1: 2 thanh ghi kết quả

 $ra: 1 thanh ghi địa chỉ trở về để quay về vị trí xuất phát

Trang 3

Lệnh để gọi 1 hàm

Trang 5

0 & 02 srl $s1, $s2, 4 $s1 = $s2 >> 4 (fill with

zeros)shift right

arithmetic

0 & 03 sra $s1, $s2, 4 $s1 = $s2 >> 4 (fill with

sign bit)and 0 & 24 and $s1, $s2, $s3 $s1 = $s2 & $s3

or 0 & 25 or $s1, $s2, $s3 $s1 = $s2 | $s3nor 0 & 27 nor $s1, $s2, $s3 $s1 = not ($s2 | $s3)and immediate c and $s1, $s2, ff00 $s1 = $s2 & 0xff00

or immediate d or $s1, $s2, ff00 $s1 = $s2 | 0xff00load upper

immediate

f lui $s1, 0xffff $s1 = 0xffff0000

Trang 6

set on less than

0 & 2a slt $s1, $s2, $s3 if ($s2<$s3) $s1=1;

else $s1=0Uncond

jump

jump register 0 & 08 jr $t1 go to $t1jump and link 3 jal 2500 go to 10000; $ra=PC+4

Trang 7

read data

write data

word address (binary)

0…0000 0…0100 0…1000 0…1100

1…1100

Register File src1 addr

src2 data

32 registers ($zero - $ra)

32

32

32 32

32

32 5 5 5

PC

ALU

32 32

32

7 6 5 4

byte address (big Endian)

Fetch

PC = PC+4

Decode Exec

Add

32 32

4

Add

32 32

br offset

Trang 8

Chế độ địa chỉ MIPS

1 Register addressing

op rs rt rd funct

Registerword operand

op rs rt offset

2 Base addressing

base register

Memoryword or byte operand

5 Pseudo-direct addressing

op jump address

Program Counter (PC)

Memoryjump destination instruction

||

op rs rt offset

Trang 9

Nguyên tắc thiết kế RISC

 Simplicity favors regularity

 fixed size instructions – 32-bits

 small number of instruction formats

 Smaller is faster

 limited instruction set

 limited number of registers in register file

 limited number of addressing modes

 three instruction formats

 arithmetic operands from the register file (load-store machine)

 allow instructions to contain immediate operands

Trang 10

 Kích thước mã nhỏ hơn, tốc độ nhanh hơn

Trang 11

Kiểm tra cú pháp mã hợp ngữ và chuyển đổi mã biểu tượng (mã hợp ngữ) thành mã đổi tượng (mã máy)

 Chú ý: Khi xác định hiệu năng cần đếm số chỉ thị được

thực thi chứ không phải kích thước mã chương trình.

 Ưu điểm của assembler

Trang 12

Nhiệm vụ chính của assembler

biểu tượng (nhãn) và địa chỉ tương ứng

 1 biểu tượng địa phương được sử dụng trong tệp nó

được định nghĩa Biểu tượng được quy ước mặc định

là địa phương.

 1 biểu tượng toàn cục (ngoại) tham chiếu/được tham

chiếu đến mã hoặc dữ liệu ở 1 tệp Các biểu tượng toàn cục được khai báo rõ ràng là toàn cục (VD., globl main)

ứng với mã lệnh (opcode), chỉ số thanh ghi

(register specifiers), số bít dịch (shift amounts),

Trang 13

Các nhiệm vụ khác của Assembler

 Thay mã giả lệnh bằng mã hợp ngữ hợp lệ

 Thanh ghi $at được dành riêng cho assembler để làm việc này

 Thay lệnh rẽ nhánh xa bằng 1 lệnh rẽ nhánh gần theo sau bởi 1 lệnh nhảy

 Thay lệnh với giá trị tức thời lớn bằng lệnh lui theo sau bởi 1 lệnh ori

 Đổi các số ở dạng thập phân và hệ 16 thành các số ở dạng nhị phân và ký tự thành mã ASCII tương ứng

 Xử lý các dẫn hướng sắp xếp dữ liệu (e.g., asciiz)

 Triển khai các macro thành các chuỗi chỉ thị

Trang 15

Cấu trúc 1 tệp mã máy

tệp

Dữ liệu tĩnh (static data) – được cấp phát trong toàn bộ quá trình

chạy

Dữ liệu động (dynamic data) – cấp phát khi cần thiết

dụng (nằm tại vị trị) địa chỉ tuyệt đối – không liên quan đến

1 thanh ghi (kể cả PC)

 Trên MIPS các lệnh j, jal, và 1 số lệnh đọc ghi (VD., lw $t1, 100($zero) ) sử dụng địa chỉ tuyệt đối

được định nghĩa cùng trong đoạn mã) hoặc không cùng địa chỉ (nếu được định nghĩa ngoài đoạn mã)

Trang 16

Ví dụ 2.8 Cấu trúc tệp mã máy

.data.align 0str: asciiz "The answer is "cr: asciiz "\n"

.text.align 2.globl main.globl printfmain: ori $2, $0, 5

syscallmove $8, $2loop: beq $8, $9, done

blt $8, $9, brncsub $8, $8, $9

yes printf ???? ????

Relocation InfoAddress Data/Instr

Trang 17

main text segment

Trang 18

Liên kết

Liên kết các đoạn mã máy độc lập với nhau

 Chỉ cẩn biên dịch và assemble lại các đoạn mã có thay đổi:

1 Quyết định mẫu cấp phát bộ nhớ cho đoạn mã và đoạn

dữ liệu của từng mô đun.

đoạn mã bắt đầu tại 0x0040 0000 và dữ liệu tĩnh bắt đầu tại 0x1000 0000

2 Cấp phát lại địa chỉ tuyệt đối để phản ánh đúng địa chỉ

bắt đầu của đoạn mã và đoạn dữ liệu

3 Sử dụng bảng biểu tượng để xác định các nhãn chưa

được xác định

 Các địa chỉ dữ liệu, rẽ nhánh nhảy tới các mô đun ngoài

 Linker tạo ra tệp thực hiện được

Trang 19

Liên kết

printf:

main:

jal ????

call, printf

Linker

Object file

C library Relocation

info

main:

jal printfprintf:

Executable file

Trang 21

memorymachine code

Trang 22

Nạp chương trình

Ngày đăng: 06/10/2013, 22:20

HÌNH ẢNH LIÊN QUAN

Sơ đồ bộ nhớ MIPS - KIẾN TRÚC MÁY TÍNH -  Lệnh case (switch) ở ngôn ngữ bậc cao
Sơ đồ b ộ nhớ MIPS (Trang 14)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w