1. Trang chủ
  2. » Luận Văn - Báo Cáo

MẪU đồ án KHOÁ LUẬN tốt NGHIỆP

38 4 0

Đ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

Định dạng
Số trang 38
Dung lượng 3,58 MB

Cấu trúc

  • Phần 1 Tìm hiểu về mainboard (6)
    • 1.1 Mainboard là gì ? (6)
    • 1.2 Chức năng chính của mainboard (6)
    • 1.3 Mainboard hoạt động như thế nào (8)
    • 1.4 Các bộ phận cơ bản có trên mainboard (0)
  • Phần 2 Công nghệ mainboard mới có trên ROG Maximus XII hero-Z590 (0)
    • 2.1 Cấu hình chi tiết (16)
    • 2.2 Công nghệ mới có trên sản phẩm (21)
  • Phần 3 Tìm hiểu về ngôn ngữ lập trình assembly 3.1 Các khái niệm (0)
    • 3.1.1 Trình hợp dịch (27)
    • 3.1.2 Hợp ngữ (29)
    • 3.1.3 Ngôn ngữ máy (30)
    • 3.2 Ứng dụng (32)
      • 3.2.1 Trong quá khứ (32)
      • 3.2.2 Hiện nay (32)
      • 3.2.3 Các ứng dụng điển hình (33)
    • 3.3 Một số ví dụ về chương trình Assembly cơ bản (34)
      • 3.3.1 Tổng của hai số (0)
      • 3.3.2 Giai thừa của một số (35)
      • 3.3.3 Trung bình cộng của hai số (36)
      • 3.3.4 Hiệu của hai số (0)
  • Phần 4 Tài liệu tham khảo (0)

Nội dung

Tìm hiểu về mainboard

Mainboard là gì ?

Bo mạch chủ, hay còn gọi là mainboard, Mobo hoặc Main, là bảng mạch in quan trọng, đóng vai trò kết nối các thiết bị thông qua các đầu cắm và dây dẫn phù hợp.

Trong ngành công nghiệp máy tính, thuật ngữ "bo mạch chủ" thường được sử dụng để chỉ thành phần chính của hệ thống Mặc dù nhiều sản phẩm khác cũng có thể mang tên gọi tương tự, để tránh nhầm lẫn, người ta thường sử dụng các cụm từ như "bo mạch chủ máy tính" hay "main máy tính" để dễ dàng phân biệt.

Chức năng chính của mainboard

 Mainboard là một bản mạch liên kết tất cả các linh kiện và thiết bị ngoại vi thành một bộ máy thống nhất

 Mainboard điều khiển tốc độ và đường đi của luồng dữ liệu giữa các thiết bị.

 Điều khiển, phân phối điện áp cung cấp cho các linh kiện gắn trên Mainboard.

Mainboard là linh kiện quan trọng quyết định tuổi thọ của toàn bộ máy tính, vì chỉ có nó mới xác định được khả năng nâng cấp của hệ thống.

Sơ đồ khối của Mainboard và các linh kiện liên quan

Sơ đồ khối của các loại Mainboard có sự khác biệt, nhưng về nguyên lý hoạt động và cấu trúc rẽ nhánh, phân phối nguồn và tín hiệu thì tương tự nhau Qua sơ đồ khối, chúng ta có thể nhận thấy những điểm chung trong cách thức hoạt động của chúng.

 Chíp cầu Bắc: Trực tiếp quản lý VGA (Kể cả onboard hoặc khe cắm rời như AGP, PCIx) và RAM.

Chip cầu Nam đóng vai trò quản lý hầu hết các thiết bị quan trọng trong hệ thống máy tính, bao gồm ATA (giao tiếp ổ cứng), chip LAN, chip Audio, các cổng USB, khe PCI, chip SIO và chip BIOS.

 Chip SIO: Quản lý các thiết bị như: Keyboard, mouse, FDD (ổ mềm), LPT (cổng máy in), Serial (cổng nối tiếp)…

Mainboard hoạt động như thế nào

 Giữa các thiết bị thông thường có tốc độ truyền tải rất khác nhau, còn gọi là tốc độ Bus

Mainboard bao gồm hai chipset quan trọng: chipset cầu bắc và chipset cầu nam Chúng có vai trò kết nối các thành phần gắn vào mainboard, chẳng hạn như giữa CPU và RAM, cũng như giữa CPU và card đồ họa (VGA Card).

Tốc độ Bus giữa các linh kiện trong máy tính thường khác nhau, vì vậy chúng cần được điều chỉnh qua North Bridge và South Bridge Quá trình này giúp đồng bộ hóa tốc độ Bus, cho phép máy tính hoạt động một cách thống nhất và hiệu quả.

Lưu ý rằng tốc độ Bus của CPU cần phải bằng hoặc lớn hơn tốc độ Bus của RAM để đảm bảo CPU có thể nhận hết dung lượng RAM Nếu tốc độ Bus của CPU thấp hơn tốc độ Bus của RAM, bạn sẽ lãng phí tài nguyên và không tận dụng được tối đa hiệu suất của máy tính.

1.4 Các thành phần có trên mainboard

Chipset là bộ phận quan trọng làm cầu nối cho tất cả thành phần trên mainboard

Mainboard dùng CPU của hãng Intel:

Chipset gồm hai loại chính là chipset cầu bắc và chipset cầu nam

 Chip cầu bắc là bộ phận kết nối với CPU từ đó kết nối với bộ nhớ chính , và kênh truyền đến chip cầu nam

Chip cầu nam có nhiệm vụ truyền tín hiệu đến chip cầu bắc và ngược lại, đóng vai trò quan trọng trong việc kết nối các thành phần của mainboard Đây là chip lớn thứ hai trong mainboard, đặc biệt đối với dòng mainboard Intel từ phiên bản I trở về sau, khi chip cầu bắc đã được tích hợp vào CPU, dẫn đến việc không còn thấy sự hiện diện của chi tiết này.

Mainboard dùng CPU của hãng AMD:

Cấu trúc bo mạch chủ của bộ xử lý ADM tương tự như của Intel, nhưng điểm khác biệt nằm ở khả năng giao tiếp giữa CPU và RAM Chipset trên bo mạch chủ ADM chỉ liên kết với một hoặc hai chip, điều này giúp tối ưu hóa hiệu suất và khả năng tương thích với các linh kiện khác.

Chip loại hai tương tự như chipset dành cho CPU Intel, trong khi chip loại một có chức năng giống như chip nam và chip bắc Ngoài Intel, còn có các nhà sản xuất chipset khác như ATI, ULi và VIA.

Mainboard là thành phần chính trong máy tính, có chức năng truyền dẫn thông tin và trao đổi dữ liệu với vi xử lý cùng các thiết bị khác Tốc độ truyền thông tin của mỗi mainboard có thể khác nhau, thường là 100MHz, 133MHz, 300MHz, và được phân chia thành 4 nhóm bus cơ bản.

 Bus hệ thống : Truyền dữ liệu từ CPU đến bộ nhớ trên mainboard

 Bus tuyến trước : tiếp nhận và truyền dữ liệu từ chip cầu bắc đến vi sử lý và ngược lại

 Black side bus : là đường truyền dữ liệu giữa cache L2 và vi sử lý

 Expansion bus : cho phép các thiết bị ngoại vi , các card mở rộng truy cập vào bộ nhớ một cách độc lập

CPU giao tiếp với Mainboard thông qua socket và slot tạo thành Front Side Bus

Slot: Cổng giao tiếp CPU dạng khe cắm

Socket: là loại đế vuông hoặc chữ nhật có xăm lỗ tương ứng với các điểm chân của CPU

Cổng cắm RAM là thành phần quan trọng giúp kết nối mainboard với RAM Kích thước và hình dạng của cổng cắm phụ thuộc vào loại RAM mà bạn sử dụng Có nhiều loại module cổng cắm khác nhau để phù hợp với các loại RAM khác nhau.

 Chuẩn SIMM : là dạng cổng cắm RAM dùng cho mainboard đời cũ hiện nay không còn được sử dụng

 Chuẩn RIMM là dạng cổng cắm có hai hàng chân chỉ dùng cho RDRAM

 Chuẩn DIMM là dạng cổng cắm có hai hàng chân dùng phổ biến hiện nay

 Chuẩn SoDIMM là dạng cổng cắm chỉ xài cho laptop

5.Cổng cắm mở rộng Cổng cắm mở rộng dùng để cắm các card mở rộng

 Cổng cắm ISA : dùng để cắm các loại card mạng , card âm thanh

….Đây là cổng cũ có độ truyền dữ liệu chậm , chiếm không gian trong mainboard nên ít được sử dụng

 Cổng PCI : Dùng phổ biến để cắm các loại card mạng , card âm thanh ,…

 Cổng AGP : Chỉ dùng cho card màn hình

 Cổng PCIe : là cổng truyền tốc độ cao được sử dụng nhiều nhất hiện 6.Kết nối nguồn nay

Kết nối nguồn là bộ phận thiết yếu cung cấp năng lượng cho mainboard và các linh kiện khác Có nhiều loại kết nối nguồn, bao gồm nguồn chính, nguồn phụ và nguồn quạt CPU.

7.Cổng kết nối thiết bị lưu trữ

 Giao tiếp IDE : giao tiếp IDE/ATA là chuẩn kết nối CD/DVD ,HDD với mạch điều khiển IDE trên mainboard,gồm 40 chân đầu cắm

Giao tiếp FDD là chuẩn kết nối ổ đĩa mềm trên bo mạch chủ, với đầu cắm FDD thường nằm gần cổng IDE Đầu cắm này có kích thước nhỏ hơn so với IDE và có 35 chân cắm.

 Giao tiếp SATA : là đầu cắm 7 chân trên mainboard để cắm các loại ổ cắm CD/DVD

 Kết nối SCSI : là chuẩn cao cấp chuyên dùng cho server Có tốc độ rất cao từ 10000 vòng / phút số chân 50 hoặc 68 chân

8.ROM BIOS và Pin CMOS

 ROM BIOS : là bộ nhớ máy tính là bộ nhớ máy tính chứa lệnh nhập xuất cơ bản để kiểm tra phần cứng , nạp hệ điều hành ,…

 PIN CMOS : cung cấp năng lượng cho board mạch CMOS hoạt động ổn định để có thể lưu lại cấu hình , thời gian chính xác của hệ thống

Jumper là các miếng nhựa nhỏ trong mạch điện, có tác dụng đóng kín mạch hở trên main board, giúp thực hiện các nhiệm vụ như lưu trữ mật khẩu CMOS.

10.Bảng kết nối các thiết bị

Bảng kết nối là công cụ thiết yếu để truyền tín hiệu và điều khiển đến mainboard Trên mainboard, các chân cắm được sắp xếp theo thứ tự và có ký hiệu rõ ràng, giúp người dùng dễ dàng gắn đúng dây cho từng thiết bị.

 Front Panel : kết nối với các công tắt mở/tắt máy khởi động lại máy , đèn tín hiệu nguồn và ổ cứng

 Front USB : kết nối với cổng USB ở mặt trước

 Front Audio : kết nối với cổng loa và cổng micro ở mặt trước

11.Các cổng giao tiếp ngoài :

Có tác dụng kết nối mainboard với các thiết bị bên ngoài có nhiều cổng với chức năng khác nhau như ps/2 COM , HDMI,cổng mạng LAN ,…

Công nghệ mainboard mới có trên ROG Maximus XII hero-Z590

Cấu hình chi tiết

Tên gọi ASUS Z590 ROG MAXIMUS XIII HERO

CPU hỗ trợ Intel® Socket LGA1200 for 11th Gen Intel® Core™ processors & 10th Gen Intel® Core™, Pentium® Gold and Celeron® Processors Supports

Intel® 14 nm CPU Chipset / Socket Intel® Z590 Chipset

Bộ nhớ (RAM) 4 x DIMM, Max 128GB, DDR4 5333(OC)/ 5133(OC)/ 5000(OC)/ 4800(OC)/ 4700(OC)/ 4600(OC)/ 4500(OC)/ 4400(OC)/ 4266(OC)/

4133(OC)/ 4000(OC)/ 3866(OC)/ 3733(OC)/ 3600(OC)/ 3466(OC)/ 3400(OC)/ 3333(OC)/ 3200/ 3000/ 2933/ 2800/ 2666/ 2400/ 2133 MHz Non-ECC, Un-buffered Memory

Dual Channel Memory Architecture Supports Intel® Extreme Memory Profile (XMP) OptiMem III Công nghệ đa GPU NVIDIA 2-Way SLI® Technology

Intel® 11th &10th Gen Processors

- Intel® 11th Core™ processors support PCIe 4.0 x16 or x8/x8 or x8/x4 mode(s)

- Intel® 10th Core™ processors support PCIe 3.0 x16 or x8/x8 or x8/x4 mode(s) Intel® Z590 Chipset

2 x Intel® I225-V 2.5Gb Ethernet ASUS LANGuard Âm thanh

ROG SupremeFX 7.1 Surround Sound High Definition Audio CODEC ALC4082

- Impedance sense for front and rear headphone outputs

- Supports: Jack-detection, Multi-streaming, Front Panel Jack-retasking

- High quality 120 dB SNR stereo playback output and 113 dB SNR recording input

- Supports up to 32-Bit/384 kHz playback Audio Features

- Rear optical S/PDIF out port

- Audio coverCổng kết nối Fan and Cooling related

1 x 3-pin Water Flow header Power related

2 x 8-pin +12V Power connector Storage related

1 x USB 3.2 Gen 2x2 connector (support(s) USB Type-C®)

2 x USB 3.2 Gen 1 header(s) support(s) additional 4 USB 3.2 Gen 1 ports

2 x USB 2.0 header(s) support(s) additional 4 USB 2.0 ports Miscellaneous

1 x Front Panel Audio header (AAFP)

- Start button Extreme Engine Digi+

- MicroFine Alloy Choke ASUS Q-Design

- VRM heatsink design ASUS EZ DIY

Phụ kiện đi kèm Cables

1 x ASUS Wi-Fi moving antennas

Hệ điều hành khuyến nghị Windows® 10 64-bit

Chuẩn kích cỡ ATX Form Factor

Công nghệ mới có trên sản phẩm

The Intel® Z590 ATX gaming motherboard features a robust 14+2 power phase design, PCIe 4.0 support, and integrated WiFi 6E (802.11ax) for high-speed connectivity It includes dual Intel® 2.5 Gb Ethernet ports, four M.2 heatsinks for enhanced thermal performance, and a protective backplate Additionally, the motherboard is equipped with dual integrated Thunderbolt 4 ports, front USB 3.2 Gen 2x2 connections, and customizable RGB Aura Sync lighting for an immersive gaming experience.

Socket LGA 1200 của Intel® hỗ trợ bộ vi xử lý Intel® Core™ thế hệ 11 cũng như các bộ vi xử lý Intel® Core™, Pentium® Gold và Celeron® thế hệ 10, cho phép cấu hình CPU và hệ thống làm mát tối ưu, nhằm đạt hiệu suất tối đa cho từng hệ thống.

Làm mát bằng trí tuệ nhân tạo AI của ASUS giúp cân bằng nhiệt độ và âm thanh cho mọi dàn máy chỉ với một cú nhấp chuột Thuật toán độc quyền này theo dõi nhiệt độ CPU, tự động điều chỉnh tốc độ quạt để giảm tiếng ồn hệ thống không cần thiết, đảm bảo hiệu suất tối ưu cho người dùng.

GameFirst VI sử dụng trí tuệ nhân tạo AI để tối ưu hóa hiệu suất kết nối mạng bằng cách phân bổ băng thông theo thời gian thực Công nghệ này dựa trên lịch sử mở ứng dụng và các thuật toán học tập, giúp cải thiện trải nghiệm người dùng một cách hiệu quả.

Tính năng khử ồn hai chiều chủ động thông minh AI sử dụng cơ sở dữ liệu deep-learning lớn để giảm hơn 500 triệu loại tiếng ồn xung quanh Điều này giúp đảm bảo giao tiếp rõ ràng trong các trò chơi hoặc cuộc gọi, nâng cao trải nghiệm người dùng.

Giải pháp năng lượng mạnh mẽ với tụ nguồn 14+2, đáp ứng mức tiêu thụ điện 90 Amps Sản phẩm được trang bị đầu cắm ProCool II, cuộn cảm hợp kim MicroFine và tụ điện kim loại đen 10K chất lượng cao, sản xuất tại Nhật Bản.

 Thiết kế tối ưu làm mát: Tản nhiệt VRM mở rộng cộng với tấm che

I/O tích hợp sẵn bằng nhôm và tấm tản nhiệt có khả năng dẫn nhiệt cao, cùng với bốn tản nhiệt M.2 được trang bị tấm ốp bảo vệ, tạo nên một khu vực điều khiển tản nhiệt nước ROG hiệu quả.

 Kết nối mạng hiệu năng cao: WiFi 6E (802.11ax) tích hợp, Ethernet kép Intel® 2.5 Gb và ASUS LANGaurd.

ROG Maximus XIII Hero được trang bị Intel® Wi-Fi 6E AX210 mới nhất, hỗ trợ băng tần lên đến 6GHz và các kênh rộng 160MHz, mang đến tốc độ không dây ấn tượng lên đến 2,4Gbps.

 Hỗ trợ công nghệ PCIe 4.0:

PCIe 4.0, bốn M.2, đầu nối USB 3.2 Gen 2x2, cổng USB Type-C ® kép với Thunderbolt™ 4 USB-C ®

Bo mạch chủ ASUS ROG Maximus XIII Hero Z590 được trang bị 4 khe cắm M.2 PCIe, trong đó 2 khe hỗ trợ tiêu chuẩn PCIe 4.0 Tất cả các khe cắm M.2 trên bo mạch đều đi kèm với tấm nền M.2 nhằm nâng cao hiệu suất làm mát.

 Âm thanh chơi game dẫn đầu trong ngành: ROG SupremeFX

ALC4082 với ESS ® ES9018Q2C DAC cho âm thanh trung thực cao

 Độc đáo cá tính riêng: Hệ thống chiếu sáng RGB Aura Sync độc quyền của ASUS, bao gồm một đầu cắm RGB và ba đầu cắm RGB addressable Gen 2

 Thiết kế DIY tự ráp thân thiện: Tấm ốp che I/O gắn sẵn, BIOS

FlashBack™, Q-Code, FlexKey, Q-Connector, SafeSlot và giá đỡ card đồ họa

 Phần mềm nổi tiếng: Tặng kèm gói đăng ký AIDA64 Extreme sử dụng 1 năm và bảng điều khiển trực quan UEFI BIOS có MemTest86 tích hợp

Tìm hiểu về ngôn ngữ lập trình assembly 3.1 Các khái niệm

Trình hợp dịch

Trình hợp dịch hiện đại chuyển đổi mã nguồn thành mã đối tượng bằng cách phiên dịch lệnh hợp ngữ thành mã thực thi và phân tích các biểu danh tương ứng với vùng nhớ Việc sử dụng biểu danh giúp giảm thiểu công sức tính toán và chỉnh sửa sau mỗi lần cải tiến ứng dụng Hầu hết các trình hợp dịch hỗ trợ macro, cho phép thay thế nhóm lệnh bằng một định danh ngắn gọn, giúp tối ưu hóa quá trình dịch khi nhóm lệnh được chèn trực tiếp vào vị trí macro thay vì gọi hàm.

Một số trình hợp dịch có khả năng tối ưu hóa theo tập lệnh, ví dụ như trình hợp dịch x86 từ nhiều nhà cung cấp Chúng có thể thay thế lệnh nhảy dài bằng nhảy ngắn hoặc tương đối trong nhiều lần vượt qua Ngoài ra, một số trình hợp dịch cho kiến trúc RISC còn có thể thực hiện sắp xếp lại hoặc chèn lệnh, giúp tối ưu hóa lịch trình tập lệnh để khai thác hiệu quả kênh chuyền dữ liệu (pipeline) của CPU.

Các trình hợp dịch đã xuất hiện từ những năm 1950, giống như các ngôn ngữ lập trình ban đầu như Fortran, Algol, Cobol và Lisp, và chúng đơn giản hơn nhiều so với trình biên dịch cho các ngôn ngữ bậc cao Mỗi mnemonic cùng với các chế độ địa chỉ và toán hạng của một lệnh được dịch trực tiếp thành các biểu diễn số mà không cần nhiều bối cảnh hay phân tích Ngoài ra, cũng có một số lớp dịch giả và trình tạo mã bán tự động có đặc điểm tương tự như hợp ngữ và ngôn ngữ bậc cao, trong đó Speedcode là một ví dụ nổi bật.

Trình biên dịch đơn có thể hỗ trợ nhiều chế độ khác nhau để xử lý các biến thể cú pháp và diễn giải ngữ nghĩa chính xác, như cú pháp FASM và TASM trong lập trình hợp ngữ x86 So với các ngôn ngữ cấp cao, trình hợp dịch dễ tạo hơn và đã xuất hiện từ những năm 1950, giúp lập trình viên giảm bớt khó khăn khi lập trình bằng ngôn ngữ máy Hiện nay, các trình hợp dịch hiện đại, đặc biệt cho các dòng chip RISC như MIPS, Sun SPARC và HP PA-RISC, thường tối ưu hóa việc sắp xếp và đồng bộ các chỉ thị lệnh để tận dụng hiệu quả các kênh chuyền dữ liệu của CPU.

Có hai loại trình hợp dịch dựa trên số lần truyền qua nguồn cần thiết (số lần trình biên dịch đọc nguồn) để tạo tệp đối tượng.

Trình hợp dịch thực hiện việc biên dịch mã nguồn chỉ một lần Nếu có ký hiệu nào được sử dụng trước khi được xác định, sẽ cần phải có phần "errata" ở cuối mã đối tượng để thông báo cho trình liên kết hoặc trình tải về việc quay lại và ghi đè lên vị trí giữ chỗ đã để lại cho ký hiệu chưa được xác định.

Trình hợp dịch nhiều lần tạo ra một bảng chứa tất cả các ký hiệu và giá trị của chúng trong các lượt biên dịch đầu tiên, sau đó sử dụng bảng này trong các lần biên dịch tiếp theo để tạo mã.

Trong quá trình biên dịch, trình biên dịch cần xác định kích thước của mỗi lệnh trên các đường chuyền ban đầu để tính toán địa chỉ của các ký hiệu tiếp theo Nếu kích thước của một hoạt động liên quan đến toán hạng được xác định sau phụ thuộc vào loại hoặc khoảng cách của toán hạng, trình biên dịch sẽ đưa ra ước tính bi quan khi lần đầu gặp thao tác và có thể cần phải thêm vào một hoặc nhiều lệnh để điều chỉnh.

Trong một trình biên dịch tối ưu hóa, khái niệm "no-operation" có thể xuất hiện trong quá trình vượt qua hoặc errata Các địa chỉ được tính toán lại giữa các lần chuyển giúp thay thế mã bi quan bằng mã được điều chỉnh chính xác theo khoảng cách đến mục tiêu.

Lý do chính để sử dụng bộ hợp dịch một lần là tốc độ hợp dịch, vì lần thứ hai thường yêu cầu phải tua lại và đọc lại nguồn chương trình Tuy nhiên, với sự phát triển của các máy tính có bộ nhớ lớn hơn, đặc biệt là lưu trữ đĩa, giờ đây có đủ không gian để thực hiện tất cả các xử lý mà không cần đọc lại Trình hợp dịch nhiều lượt mang lại lợi ích là không có lỗi, giúp quá trình liên kết hoặc tải chương trình nhanh hơn.

Trong đoạn mã này, trình hợp dịch một lần chỉ có thể xác định địa chỉ của BKWD khi hợp dịch câu lệnh S2, trong khi địa chỉ của FWD không thể xác định khi hợp dịch câu lệnh nhánh S1 Điều này có nghĩa là FWD có thể không được xác định Ngược lại, trình hợp dịch hai lần sẽ xác định cả hai địa chỉ trong lần đầu tiên, do đó chúng sẽ được biết khi tạo mã trong lần thứ hai.

Trình hợp dịch bậc cao

Nhiều trình hợp dịch bậc cao còn hỗ trợ khả năng ngôn ngữ trừu tượng như:

 Khai báo thủ tục/hàm bậc cao

 Các cấu trúc điều khiển nâng cao (IF/THEN/ELSE, SWITCH)

 Các khai báo hàm cấp cao

 Các kiểu dữ liệu trừu tượng bậc cao bao gồm các cấu trúc/bản ghi, unions, lớp, và sets

Xử lý macro phức tạp đã tồn tại từ những năm 1950 với các trình hợp dịch cho dòng máy IBM 700 và từ những năm 1960 cho IBM/360, cùng với nhiều thiết bị khác.

 Các tính năng lập trình hướng đối tượng như các lớp, đối tượng, trừu tượng hóa, đa hình và kế thừa [11]

Tham khảo phần Thiết kế ngôn ngữ bên dưới để rõ hơn.

Hợp ngữ

Một chương trình viết bằng hợp ngữ bao gồm chuỗi lệnh dễ nhớ, tương ứng với các chỉ thị khả thi Khi được dịch bởi trình hợp dịch, những lệnh này có thể nạp vào bộ nhớ và thực thi Ví dụ điển hình là bộ vi xử lý x86/IA-

32 có thể thực hiện được chỉ thị nhị phân sau (thể hiện ở dạng ngôn ngữ máy):

Lệnh 10110000 01100001 (thập lục phân: 0xb061) thực hiện một phép toán, được gọi là opcode, và được đặt tên thay thế cho từ "move" Các đối/ tham số của lệnh sẽ theo sau và được ngăn cách với opcode bằng một dấu phẩy ",".

Trình hợp dịch chuyển đổi hợp ngữ sang ngôn ngữ máy, trong khi trình phân dịch thực hiện ngược lại Các chỉ thị hợp ngữ thường tương ứng 1-1 với chỉ thị ngôn ngữ máy, nhưng trình hợp dịch có thể thêm các lệnh giả để cung cấp chức năng thường dùng Nhiều trình hợp dịch đa chức năng còn cung cấp tập macro phong phú, giúp nhà sản xuất thiết bị và lập trình viên tạo mã lệnh và dãy dữ liệu phức tạp.

Mỗi kiến trúc máy tính đều có ngôn ngữ máy và hợp ngữ riêng, phân biệt bởi số lượng và kiểu lệnh hỗ trợ Chúng cũng khác nhau về số lượng, kích cỡ thanh ghi và cách thể hiện kiểu dữ liệu trong bộ nhớ Mặc dù các máy tính công dụng chung thực hiện cùng chức năng, phương pháp thực hiện khác nhau phản ánh sự khác biệt giữa các hợp ngữ tương ứng với từng kiểu máy tính.

Ngôn ngữ máy

Ngôn ngữ máy bao gồm các chỉ thị và lệnh rời rạc, được xác lập theo từng kiến trúc xử lý với những đặc thù riêng biệt.

 Các thanh ghi dùng cho tính toán số học

 Cách bố trí bộ nhớ và tính địa chỉ

 Cách điều khiển rẽ nhánh

 Các kiểu đánh địa chỉ đặc thù dùng để giải các toán hạng

Nhiều lệnh phức hợp được hình thành bằng cách kết hợp các chỉ thị đơn giản theo nguyên lý máy tính Von Neumann, thực thi tuần tự và rẽ nhánh theo lệnh phân luồng Một số lệnh điển hình xuất hiện trong hầu hết các tập lệnh bao gồm:

Lệnh gán là thao tác gán giá trị hằng số cho một thanh ghi trong CPU, cho phép chuyển dữ liệu giữa vùng nhớ và thanh ghi Thao tác này giúp chuẩn bị dữ liệu cho các phép tính sau hoặc lưu trữ kết quả của các phép tính trước Ngoài ra, lệnh gán cũng được sử dụng để đọc và ghi dữ liệu từ hoặc vào các thiết bị phần cứng.

Lệnh tính toán trong lập trình cho phép thực hiện các phép toán cơ bản như cộng, trừ, nhân và chia trên các giá trị trong thanh ghi Ngoài ra, nó cũng hỗ trợ thao tác bit với các phép "và" (AND) và "hoặc" (OR) giữa hai thanh ghi, cũng như phép phủ định bit trên một thanh ghi Bên cạnh đó, lệnh còn cho phép so sánh các giá trị trong hai thanh ghi để xác định xem giá trị nào nhỏ hơn, lớn hơn hoặc bằng nhau.

Lệnh điều khiển rẽ nhánh cho phép nhảy tới một vị trí trong chương trình để thực thi các lệnh, đồng thời có thể chuyển hướng tới một vị trí khác khi một điều kiện nhất định được thỏa mãn Ngoài ra, lệnh này cũng có khả năng nhảy tới một vị trí và lưu lại vị trí của lệnh tiếp theo, tạo điều kiện cho việc quay trở lại (thường được sử dụng trong các lời gọi hàm).

Một số máy tính tích hợp các lệnh phức hợp trong tập lệnh của chúng, cho phép thực hiện các tác vụ cần nhiều chỉ thị lệnh trên nhiều máy khác nhau Những lệnh này thường được thực hiện qua nhiều bước và điều khiển nhiều đơn vị chức năng Dưới đây là danh sách minh họa một số lệnh phức hợp.

 Lưu lại nhiều thanh ghi trên ngăn xếp chỉ một lần

 Di chuyển các khối vùng nhớ lớn

 Các phép toán dấu phảy động phức tạp (sine, cosine, square root, etc.)

 Các lệnh ALU liên kết với một toán hạng từ bộ nhớ thay vì với một thanh ghi

Các lệnh SIMD (single instruction multiple data) là một kiểu lệnh phức hợp phổ biến hiện nay, cho phép thực hiện cùng một phép toán số học trên nhiều phần dữ liệu đồng thời Chúng hỗ trợ xử lý song song các thuật toán liên quan đến âm thanh, hình ảnh và video một cách hiệu quả Nhiều tập lệnh SIMD đã được tích hợp trong CPU và được thương mại hóa dưới các thương hiệu như MMX, SSE, SSE2 và SSE3.

SSE4 (Intel), 3DNow! (AMD), AltiVec (IBM), tm3260 và tm5250 (Nexper ia - Philips) …

Ứng dụng

Trong lịch sử, nhiều chương trình đã được phát triển hoàn toàn bằng hợp ngữ trước khi ngôn ngữ C ra đời vào những năm 1970.

Trong giai đoạn 1970 đến đầu thập niên 1980, hệ điều hành độc quyền chủ yếu được lập trình bằng hợp ngữ, cùng với nhiều ứng dụng thương mại cho máy tính lớn của IBM Mặc dù ngôn ngữ COBOL và FORTRAN dần thay thế hợp ngữ, nhiều tổ chức vẫn duy trì kiến trúc ứng dụng kiểu hợp ngữ trong suốt thập niên 1980 Các máy vi tính đầu tiên chủ yếu hoạt động bằng hợp ngữ do hạn chế về tài nguyên, thiết bị, bộ nhớ và kiến trúc hiển thị Thiếu hụt các trình biên dịch bậc cao tiên tiến cũng là một lý do quan trọng Các ứng dụng lớn tiêu biểu bao gồm hệ điều hành CP/M, MS-DOS, bảng tính Lotus-123 trên máy IBM-PC đời đầu, và nhiều trò chơi phổ biến cho máy Commodore.

64 Thậm chí tới những năm 1990, nhiều các trò chơi video giải trí vẫn được viết bằng hợp ngữ, bao gồm các trò chơi cho máy Mega

Drive/Genesis và Super Nintendo Entertainment System.

Ngoài ra, một loại "ứng dụng" không được khuyến khích là virus máy tính Trong những năm 1980 và đầu 1990, hầu hết virus máy tính được viết bằng hợp ngữ, do hợp ngữ giúp giảm thiểu kích thước virus và cho phép can thiệp sâu hơn vào hệ thống.

3.2.2 Hiện nay Đã từng có nhiều tranh luận về tiện dụng và hiệu năng của hợp ngữ so với các ngôn ngữ bậc cao, tuy ngày nay người ta ít chú ý tới điều đó nữa Hợp ngữ vẫn đóng vai trò quan trọng trong một số nhu cầu cần thiết Nói chung, các trình biên dịch hiện đại ngày nay đều có khả năng biên dịch các ngôn ngữ bậc cao thành mã mà có thể thực thi nhanh ít nhất bằng hợp ngữ Độ phức tạp của các bộ vi xử lý hiện đại cho phép tối ưu mã một cách hiệu quả, hơn nữa, phần lớn thời gian hoạt động của CPU rơi vào trạng thái rỗi bởi nó phải đợi kết quả từ cá các tính toán "thắt cổ chai" như các thao tác I/O và truy xuất bộ nhớ Vì thế tốc độ thực thi mã thô (raw code) trở thành vấn đề ít quan trọng đối với hầu hết lập trình viên, sự xuất hiện các ngôn ngữ thông dịch (interpreted language) ngày càng nhiều là một minh chứng cho điều này.

Ngày nay có một số ít tình huống mà các chuyên gia thực sự muốn dùng hợp ngữ cho công việc của họ là:

Khi các thiết bị hoạt động độc lập mà không cần tài nguyên hay thư viện liên kết với ngôn ngữ bậc cao, đây là một trong những trường hợp phổ biến nhất.

Khi cần giao tiếp trực tiếp với phần cứng, như trình điều khiển thiết bị, hoặc khi muốn sử dụng các chỉ thị vi xử lý mà trình biên dịch không hỗ trợ, việc tiếp cận này trở nên cần thiết.

 Khi cần tối ưu khắt khe như các thuật toán có dùng vòng lặp tiêu tốn nhiều năng lực xử lý

Trong bối cảnh hiện nay, việc viết mã thủ công để tối ưu hóa nguồn tài nguyên hạn chế dường như không còn phổ biến, bởi vì giá CPU đã giảm và hiệu suất hoạt động của CPU đã được cải thiện đáng kể.

 Khi các ngôn ngữ bậc cao không thể áp dụng được trên một CPU mới hoặc CPU chuyên dụng.

Ngày nay, lập trình viên có thể lựa chọn ngôn ngữ lập trình cấp thấp như C để phát triển ứng dụng hiệu suất cao, nhưng việc này không hề đơn giản Ứng dụng viết bằng C không nhất thiết hiệu quả hơn ứng dụng viết bằng hợp ngữ Hợp ngữ vẫn được giảng dạy trong hầu hết các chương trình Khoa học máy tính vì những khái niệm nền tảng như số học nhị phân, cấp phát bộ nhớ, xử lý ngăn xếp, mã hóa tập ký tự, xử lý ngắt và thiết kế trình dịch vẫn rất quan trọng Nghiên cứu hợp ngữ là cách tốt nhất để nắm vững các khái niệm cơ bản này May mắn thay, hầu hết các máy tính hiện đại có các tập lệnh tương tự nhau, vì vậy chỉ cần hiểu một loại hợp ngữ cũng đủ để áp dụng vào các hệ thống khác.

3.2.3 Các ứng dụng điển hình

Hợp ngữ mã cấp thấp được sử dụng cho BIOS lưu trong ROM của hệ thống, nhằm khởi tạo và kiểm tra phần cứng trước khi hệ điều hành được khởi động Sau khi quá trình khởi tạo phần cứng hoàn tất, quyền điều khiển hệ thống sẽ được chuyển giao cho các mã thực thi khác, thường được viết bằng ngôn ngữ bậc cao Điều này cũng áp dụng cho hầu hết các trình khởi động (boot loader).

Nhiều trình biên dịch chuyển đổi ngôn ngữ bậc cao thành hợp ngữ trước khi thực hiện biên dịch, giúp kiểm tra mã để gỡ rối và tối ưu Các ngôn ngữ cấp thấp như C cung cấp cú pháp cho phép nhúng hợp ngữ trực tiếp vào mã nguồn Chương trình như Nhân Linux tận dụng tính năng này để tạo ra các tầng trừu tượng, phục vụ cho nhiều kiến trúc phần cứng khác nhau.

Một số ví dụ về chương trình Assembly cơ bản

3.3.2 Giai thừa của một số

3.3.3 Trung bình cộng của hai số

3.3.4 Chuyển đổi một số thành dạng nhị phân

Ngày đăng: 17/12/2023, 01:52

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

TÀI LIỆU LIÊN QUAN

w