Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 245 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
245
Dung lượng
12,79 MB
Nội dung
Mơn học: Kiến trúc máy tính • Là loại ngơn ngữ nhân tạo (Ví dụ: C/C++) cấu thành yếu tố chính: – Từ vựng: keyword (struct, enum, if, int…) – Ngữ pháp: syntax (if(…){} else{}, do{} while()…) • Ngơn ngữ lập trình giúp cho người sử dụng (gọi lập trình viên) diễn đạt mô tả hướng dẫn cho máy tính hoạt động theo ý muốn • Độ phức tạp (trừu tượng) hướng dẫn định thứ bậc ngôn ngữ – Độ phức tạp cao bậc thấp – Ví dụ: C Sharp (C#) ngôn ngữ bậc cao C • Ngôn ngữ mà người dễ hiểu lại ngơn ngữ máy tính “khó hiểu” – Ngơn ngữ bậc cao người dễ hiểu máy tính lại “khó hiểu” • Nhưng máy tính lại nơi cần hiểu nhanh để thực thi muốn Ngơn ngữ máy (Machine language) If (n>0) { n=-1; } OK ??? If (n>0) { n=-1; } • Ngơn ngữ máy cho phép người lập trình đưa hướng dẫn đơn giản mà vi xử lý (CPU) thực • Các hướng dẫn gọi thị / lệnh (instruction) mã máy (machine code) • Mỗi vi xử lý (CPU) có ngơn ngữ riêng, gọi lệnh (instruction set) • Trong dòng vi xử lý (processor family) lệnh gần giống Instruction set • Khơng phải muốn / lập trình ngơn ngữ máy q khó hiểu so với ngơn ngữ bình thường người Nhu cầu cần có phận phiên dịch (interpreter) High-level language (C/C++) OK Interpreter Machine Laguage OK • Trong số trường hợp, việc viết ngôn ngữ cấp “quá cao” trở nên chạy chậm phải phiên dịch nhiều lần để trở thành ngơn ngữ máy Hợp ngữ (Assembly language) Highest-level language Lower-level language Lower-level language Interpreter Machine Laguage • Các mã máy số (0 / 1) • Trong ngơn ngữ máy khơng có khái niệm biến thay vào địa nhớ, ghi (lưu trữ mã lệnh, liệu) • Để dễ dàng lập trình dùng ký hiệu mã giả thay cho số biểu diễn địa ô nhớ, tên (label, tên biến, tên chương trình) • Hợp ngữ gần với ngôn ngữ máy lại đủ để người hiểu sử dụng tốt ngôn ngữ máy – Ví dụ: Ghi giá trị vào ghi $4 Ngôn ngữ máy: 00110100 0000100 00000000 00000101 Hợp ngữ : ori $4, $0, • Vì vi xử lý có cấu trúc ghi tập lệnh (ngơn ngữ) riêng nên lập trình hợp ngữ phải nói rõ lập trình cho vi xử lý nào, hay dòng (family) vi xử lý – Ví dụ: • Hợp ngữ cho MIPS • Hợp ngữ cho dòng vi xử lý Intel 80x86 .data # data segment str: asciiz ”hello MIPS” text # text segment globl main main: addi $v0, $0, # = print str syscall la $a0, str # load address of string syscall # execute the system call global _WinMain@16 extern _MessageBoxA@16 [section data] title db "Message",0 message db "Hello asm!",0 [section code] _WinMain@16: push push title push message push call _MessageBoxA@16 ret 16 10 • Intel® Turbo Boost: Là cơng nghệ nâng hiệu suất máy tính lên thêm 20%, giúp hệ thống hoạt động nhanh kéo dài thời lượng pin, cách tự động điều chỉnh xung nhịp nhân độc lập cho phù hợp với nhu cầu xử lý Tập trung sức mạnh xử lý chơi game, quản lý đa phương tiện, hỗ trợ phần mềm ứng dụng xử lý đa luồng • lõi (core) vật lý • Bộ nhớ đệm (cache) cấp • Sử dụng công nghệ Intel: TurboBoost Hyper-Threading – Turbo-Boost: tự động điều chỉnh xung nhịp lõi độc lập phù hợp với nhu cầu xử lý tăng hiệu suất lên 20% – Hyper-Threading: cung cấp luồng (thread) xử lý lõi nhân đơi số tác vụ mà vi xử lý thực thi 10 11 • • • Bus liệu (data bus): truyền liệu thành phần hệ thống (2 chiều) Bus địa (address bus): để CPU xác định thành phần hệ thống (1 chiều) Bus điều khiển (control bus): để CPU lệnh điều khiển cho thành phần hệ thống (2 chiều) 12 13 14 • Bus địa bao gồm tín hiệu dùng để chuyển tải địa (thường ký hiệu A, ví dụ CPU có 20 tín hiệu từ A0 đến A19) Khi đọc/ghi nhớ (hoặc I/O), CPU đưa Bus địa nhớ (hoặc I/O) cần đọc/ ghi • Như vậy, số lượng tín hiệu địa định không gian nhớ (tức số lượng ô nhớ) mà CPU định vị Ví dụ: • CPU 8088/8086 có 20 bít tín hiệu địa khơng gian nhớ CPU 220 = 1Mbytes • CPU Pentium II có 36 tín hiệu địa khơng gian nhớ 236 = 64Gbytes 15 • Bus liệu gồm tín hiệu dùng để chuyển tải liệu (thường ký hiệu D) Số tín hiệu liệu định số bit liệu mà CPU xử lý lúc Lưu ý tín hiệu liệu hai chiều CPU đọc/ghi liệu từ nhớ I/O • Bus điều khiển dùng để điều khiển hoạt động hệ thống tín hiệu /WR (Write) để báo hiệu CPU đọc liệu, /RD (Read) để báo hiệu CPU ghi liệu, Ready dùng để báo cho CPU biết nhớ (hoặc I/O) sẵn sàng trình trao đổi liệu…Do đó, Bus điều khiển phải hai chiều 16 • Bộ ghép nối vào cho phép ghép nối hệ thống với thiết bị vào/ (I/O) hình, bàn phím, chuột, ỗ đĩa…thơng qua địa cổng vào/ (Port) 17 • Bus địa có 20 bit khơng gian nhớ CPU 220 ô nhớ Trong CPU Intel, nhớ có độ dài bit, nên không gian nhớ tương ứng CPU 8088/ 8086 Mega bytes • CPU 8088/8086 có 14 ghi 16 bit Trong sơ đồ bên ghi đa AX, BX, CX, DX trình bày dạng hai ghi bit tương ứng 18 • Một chương trình hoạt động có vùng nhớ: o Mã lệnh o Dữ liệu o Ngăn xếp (Stack) • CPU 8088/8086 có ghi đoạn: o CS (Code Segment) ghi đoạn mã lệnh, trỏ đến vùng nhớ chứa mã lệnh chương trình o DS (Data Segment) ghi đoạn liệu, trỏ đến vùng nhớ chứa liệu chương trình o ES (Extra Segment) ghi đoạn liệu phụ, trỏ đến vùng nhớ chứa liệu chương trình o SS (Stack Segment) ghi đoạn ngăn xếp 19 AX (16 bit) AH (8 bit) AL (8 bit) CX (16 bit) CH (8 bit) CL (8 bit) BX (16 bit) BH (8 bit) BL (8 bit) DX (16 bit) DH (8 bit) DL (8 bit) • AX (Accumulator Register - ghi tích lũy): Dùng phép nhân chia, chứa liệu cho lệnh in, out • BX (Base Register - ghi sở): Dùng chế độ địa sở • CX (Count register - ghi đếm): Dùng để đếm số lần lặp lệnh lặp • DX (Data Register - ghi liệu): Dùng để chứa địa cho lệnh in/ out làm toán hạng lệnh nhân, chia 16 bit (DX chứa 16 bit cao) 20 • SI (Source Index) DI (Destination Index): Các ghi dùng trỏ để truy xuất gián tiếp đến nhớ • IP (Instruction Pointer): Trỏ đến lệnh mà CPU thực • SP (Stack Pointer): Trỏ đến ô nhớ nằm vùng ngăn xếp • BP (Base Pointer): Được dùng để truy xuất gián tiếp đến nhớ 21 • Thanh ghi cờ có nhiều chức năng: phản ánh kết sau tính tốn, thể trạng thái họat động CPU… Cờ tràn (Overflow Flag - OF) Cờ hướng (DirectionFlag – DF Cờ ngắt (Interrupt flag - IF) Cờ dấu (Sign Flag - SF) Cờ Zero (Zero Flag - ZF) Cờ phụ (Auxililary Flag - AF): Cờ nhớ phụ chứa bit nhớ • Cờ parity (Parity Flag PF) • Cờ nhớ (Carry Flag – CF): Cờ nhớ dùng cho phép tốn nhị phân khơng dấu • • • • • • 22 ... người dễ hiểu lại ngơn ngữ máy tính “khó hiểu” – Ngơn ngữ bậc cao người dễ hiểu máy tính lại “khó hiểu” • Nhưng máy tính lại nơi cần hiểu nhanh để thực thi muốn Ngơn ngữ máy (Machine language)... vào nhớ thực 22 Mơn học: Kiến trúc máy tính Nội dung • Mơ tả tập lệnh 8086 • Lập trình hợp ngữ 8086 Nội dung • Mơ tả tập lệnh 8086 Các lệnh di chuyển liệu Các lệnh số học logic Các lệnh... ngơn ngữ máy lại đủ để người hiểu sử dụng tốt ngơn ngữ máy – Ví dụ: Ghi giá trị vào ghi $4 Ngôn ngữ máy: 00110100 0000100 00000000 00000101 Hợp ngữ : ori $4, $0, • Vì vi xử lý có cấu trúc ghi