1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) báo cáo CUỐI kì bộ môn KIẾN TRÚC máy TÍNH đề tài tìm HIỂU về NHỮNG CÔNG NGHỆ mới có TRÊN MAINBOARD và NGÔN NGỮ lập TRÌNH ASSEMBLY

39 12 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

Tiêu đề Tìm Hiểu Về Những Công Nghệ Mới Có Trên Mainboard Và Ngôn Ngữ Lập Trình Assembly
Tác giả Châu Bình, Nguyễn Văn Quý, Vương Quốc Khánh, Trần Minh Vũ
Trường học Đại học Đà Nẵng
Chuyên ngành Kiến Trúc Máy Tính
Thể loại Báo cáo Cuối Kì
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 39
Dung lượng 5,66 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 (16)
    • 2.1 Cấu hình chi tiết (16)
    • 2.2 Công nghệ mới có trên sản phẩm (22)
  • Phần 3 Tìm hiểu về ngôn ngữ lập trình assembly (28)
    • 3.1 Các khái niệm (28)
      • 3.1.1 Trình hợp dịch (28)
      • 3.1.2 Hợp ngữ (30)
      • 3.1.3 Ngôn ngữ máy (31)
    • 3.2 Ứng dụng (33)
      • 3.2.1 Trong quá khứ (33)
      • 3.2.2 Hiện nay (33)
      • 3.2.3 Các ứng dụng điển hình (34)
    • 3.3 Một số ví dụ về chương trình Assembly cơ bản (35)
      • 3.3.1 Tổng của hai số (35)
      • 3.3.2 Giai thừa của một số (36)
      • 3.3.3 Trung bình cộng của hai số (37)
      • 3.3.4 Hiệu của hai số (0)
  • Phần 4 Tài liệu tham khảo (39)

Nội dung

Tìm hiểu về mainboard

Mainboard là gì ?

Bo mạch chủ hay còn gọi là mainboard/ Motherboard (hay còn được gọi tắt là Mobo hoặc Main) là một bảng mạch in đóng vai trò liên kết các thiết bị thông qua các đầu cắm hoặc dây dẫn phù hợp

Trong ngành công nghiệp máy tính, thuật ngữ này được sử dụng khá phổ biến và là một từ danh riêng Mặc dù khác nhiều sản phẩm có bản mạch chính cũng có thể được gọi là “bo mạch chủ”, để tránh nhầm lẫn người ta thường gọi chúng là bo mạch chủ máy tính/ main máy tính, PC;… dễ dàng phân biệt hơn.

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.

Ngoài ra Mainboard còn là linh kiện quyết định đến “tuổi thọ” của nguyên một bộ máy vì chỉ có có “em nó” mới biết là “mình” có thể nâng cấp lên tới mức nào.

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

Sơ đồ khối của nhiều loại Mainboard sẽ khác nhau, tuy nhiên về cơ bản là giống nhau về nguyên lý hoạt động và cấu trúc rẽ nhánh, liên lạc và phân phối nguồn, tín hiệu tương tự nhau Và theo sơ đồ khối trên ta thấy:

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: Quản lý hầu hết các thiết bị còn lại như: ATA (giao tiếp ổ cứng), chip LAN, chip Audio, các cổng USB, các khe PCI, chip SIO, 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)…

Chip BIOS: Chứa đoạn chương trình CMOS SETUP, POST…

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 có 2 Chipset quan trọng là Chipset cầu bắc và Chipset cầu nam, chúng có nhiệm vụ nối các thành phần cắm vào Mainboard như giữa CPU và RAM, giữa CPU và VGA Card, …

Do tốc độ Bus giữa các linh kiện khác nhau nên chúng được đưa qua North Bridge và South Bridge để xử lý lại tốc độ Bus, chính vì thế mà máy tính có thể hoạt động được một cách thống nhất.

Lưu ý: Các bạn lưu ý một điều đó là tốc độ Bus của CPU phải bằng hoặc lớn hơn tốc độ Bus của RAM, có như vậy CPU mới nhận hết đượcRAM, nếu tốc độ Bus của CPU lại nhỏ hơn của RAM, vậy là bạn đã lãng phí và đang không tận dụng được hết sức mạnh của bộ 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ó trách nhiệm dẫn truyền tín hiệu đến chip cầu bắc và ngược lại Chip cầu nam là chip lớn thứ hai trong mianboard Đối với dòng mainboard intel từ phiên bản I trở về sau chip cầu bắc được tích hợp với CPU nên ta không thấy được 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 thì cũng như hãng Intel tuy nhiên sự khác nhau nằm ở chỗ cấu trúc bo mạch chủ cho bộ sử lý ADM cho phép CPU giao tiếp với RAM,chipset sẽ liên kết với các bộ phận khác nên sẽ chỉ có một hoặc hai chip

Loại hai chip tương tự như chip set dành cho CPU intel.Loại một chip có chức năng tương tự như chip nam và chip bắc Ngoài hai hãng sản xuất chipset này còn có các hãng như Ati , Uli , Via …

Mainboard được bus truyền dẫn thông tin trao đổi dữ liệu với vi sử lý và các thiết bị khác Mỗi mainboard sẽ có tốc độ truyền thông tin khác nhau :100MHz,133MHz,300MHz … có thể 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 giúp mainboard và RAM kết nối với nhau Kích thước hình dạng của cổng cắm phụ thuộc vào việc bạn dùng loại RAM nào Các loại Module cổng cắm:

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

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

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 nay

Kết nối nguồn là bộ phận quan trọng để cấp năng lượng cho mainboard và các chi tiết khác Kết nối nguồn gồm nhiều loại như : nguồn chính , nguồn phụ , 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 mainboard Đầu cắm FDD thường nằm gần IDE trên main và có tiết diện nhỏ hơn IDE 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

9.Jumper Ở trong chất dẫn điện có các miếng plastic nhỏ (jumper), làm cho kín mạch hở trên main board để thực hiện nhiệm vụ bất kì như lưu 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ụ kết nối tín hiệu và điều khiển đến với mainboard Trên mainboard sẽ có thứ tự chân cắm với kí hiệu rõ ràng để giúp gắng đúng dây cho từng thiết bị Bảng kết nối gồm :

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ác bộ phận cơ bản có trên mainboard

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®

4 x DIMM, Max 128GB, DDR4 5333(OC)/ 5133(OC)/ 5000(OC)/ 4800(OC)/ 4700(OC)/ 4600(OC)/ 4

Bộ nhớ (RAM) 4133(OC)/ 4000(OC)/ 3866(OC)/ 3733(OC)/ 3600(OC)/ 3466(OC)/ 3400(OC)/ 3333(OC)/ 3200/ 3000

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®

4 x DIMM, Max 128GB, DDR4 5333(OC)/ 5133(OC)/ 5000(OC)/ 4800(OC)/ 4700(OC)/ 4600(OC)/ 4

Bộ nhớ (RAM) 4133(OC)/ 4000(OC)/ 3866(OC)/ 3733(OC)/ 3600(OC)/ 3466(OC)/ 3400(OC)/ 3333(OC)/ 3200/ 3000

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)

Khe cắm mở rộng - Intel® 10th Core™ processors support PCIe 3.0 x16 or x8/x8 or x8/x4 mode(s)

ASUS LANGuard 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

- Rear optical S/PDIF out port

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

1 x Front Panel Audio header (AAFP)

Cổng kết nối (Back 1 x ASUS Wi-Fi Module

Công nghệ độc Extreme OC Kit quyền - FlexKey button

- Start button Extreme Engine Digi+

- MicroFine Alloy Choke ASUS Q-Design

- Q-LED (CPU [red], DRAM [yellow], VGA [white], Boot Device [yellow green])

- Addressable Gen 2 RGB header(s) Cables

1 x ASUS Wi-Fi moving antennas

Chuẩn kích cỡ ATX Form Factor

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

Bo mạch chủ chơi game Intel ® Z590 ATX với tụ nguồn 14+2, PCIe 4.0, WiFi 6E (802.11ax) tích hợp, Ethernet kép Intel ® 2.5 Gb, bốn tản nhiệt M.2 và tấm ốp bảo vệ đi kèm, Thunderbolt 4 kép tích hợp trên bo, cổng USB 3.2 Gen 2x2 phía trước và đèn RGB Aura Sync

Intel ® Socket LGA 1200 dành cho bộ vi xử lý Intel ® Core™ thế hệ 11 và bộ vi xử lý Intel ® Core™, Pentium ® Gold và Celeron ® thế hệ 10 Điều khiển thông minh: Phần mềm và firware tiện ích độc quyền của ASUS giúp đơn giản hóa việc thiết lập và cải thiện hiệu suất: Ép xung bằng trí tuệ nhân tạo AI: Điều chỉnh giờ đây nhanh hơn và cấu hình CPU và làm mát nhằm dự đoán cấu hình tối ưu và kéo từng hệ thống chạy đến mức giới hạn.

Làm mát bằng trí tuệ nhân tạo AI: Cân bằng nhiệt độ và âm thanh của bất kỳ dàn máy nào chỉ với một click chuột Một thuật toán độc quyền của ASUS làm giảm tiếng ồn hệ thống không cần thiết bằng cách theo dõi nhiệt độ CPU và tự động điều chỉnh quạt để đạt tốc độ tối ưu.

Kết nối mạng bằng trí tuệ nhân tạo AI: GameFirst VI tối ưu hóa hiệu năng kết nối mạng bằng cách phân bổ băng thông trong thời gian thực dựa trên các lịch sử mở chạy ứng dụng và các thuật toán học tập

Tính năng khử ồn hai chiều chủ động thông minh AI: Tiện ích này tận dụng cơ sở dữ liệu deep-learning khổng lồ để giảm hơn 500 triệu loại tiếng ồn xung quanh từ âm thanh đầu vào hoặc đầu ra, giúp đảm bảo giao tiếp rõ ràng trong game hoặc trong cuộc gọi

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

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, tấm tản có tính dẫn nhiệt cao, bốn tản nhiệt M.2 với tấm ốp bảo vệ và khu vực điều khiển tản nhiệt nước ROG Water-Cooling Zone

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ợ lên đến 6GHz và các kênh 160MHz rộng hơn, cho tốc độ không dây 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 ®

Các bo mạch chủ ASUS ROG Maximus XIII Hero Z590 đều có 4 khe cắm M.2 PCIe và 2 trong số 4 sẽ hỗ trợ PCIe 4.0 Các khe cắm M.2 trên bo mạch chủ đều bao gồm tấm nền M.2 để có hiệu suất làm mát tốt hơn. Â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

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ó

Tìm hiểu về ngôn ngữ lập trình assembly

Các khái niệm

Thông thường, một trình hợp dịch hiện đại tạo ra mã đối tượng (object code) bằng cách phiên dịch các lệnh hợp ngữ thành mã thực thi (opcodes) và phân tích các biểu danh (symbolic names) ứng với các vùng nhớ cùng các thực thể khác [9] Việc dùng các biểu danh để tham chiếu là một tính năng then chốt của các trình hợp dịch, nó tiết kiệm một khối lượng lớn công việc tính toán và sửa đổi thủ công sau mỗi lần cải tiến ứng dụng Hầu hết các trình hợp dịch đều hỗ trợ macro nhằm giúp cho việc thay thế một nhóm lệnh bằng một định danh ngắn gọn Trong quá trình dịch, nhóm lệnh tương ứng sẽ được chèn trực tiếp vào vị trí macro thay vì một lời gọi hàm (subroutine).

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

Giống như các ngôn ngữ lập trình ban đầu như Fortran, Algol, Cobol và Lisp, các trình hợp dịch đã có sẵn từ những năm 1950 và các thế hệ giao diện máy tính dựa trên văn bản đầu tiên Tuy nhiên, các trình hợp dịch xuất hiện đầu tiên 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 Điều này là do mỗi mnemonic cùng với các chế độ địa chỉ và toán hạng của một lệnh dịch trực tiếp thành các biểu diễn số của lệnh đó, mà không có nhiều bối cảnh hoặc phân tích Cũng đã có một số lớp dịch giả và trình tạo mã bán tự động có các thuộc tính tương tự cả hợp ngữ và ngôn ngữ bậc cao, với Speedcode có lẽ là một trong những ví dụ được biết đến nhiều hơn.

Có thể có một số trình biên dịch với cú pháp khác nhau cho một cấu trúc CPU hoặc tập lệnh cụ thể Chẳng hạn, một lệnh để thêm dữ liệu bộ nhớ vào một thanh ghi trong bộ xử lý họ x86 có thể là add eax,[ebx], trong cú pháp gốc của Intel, trong khi điều này sẽ được viết là addl (%ebx),%eax trong cú

Xem bên dưới Một trình biên dịch đơn cũng có thể có các chế độ khác nhau để hỗ trợ các biến thể trong các hình thức cú pháp cũng như các diễn giải ngữ nghĩa chính xác của chúng (như cú pháp FASM, cú pháp TASM, chế độ lý tưởng, v.v., trong trường hợp đặc biệt của lập trình hợp ngữ x86).

Các trình hợp dịch nói chung dễ tạo hơn so với các chương trình dịch cho ngôn ngữ cấp cao Những trình hợp ngữ đầu tiên xuất hiện từ những thập niên 1950, trong buổi đầu sơ khai của máy tính đã tạo ra một bước ngoặt lớn đối với những lập trình viên vốn rất mệt mỏi vì việc lập trình bằng ngôn ngữ máy Các trình hợp dịch hiện đại ngày nay, đặc biệt cho các dòng chip RISC như MIPS, Sun SPARC và HP PA-RISC, thường tối ưu việc sắp xếp và đồng bộ các chỉ thị lệnh (instruction scheduling) để tận dụng các kênh chuyền dữ liệu (pipeline) của CPU một cách hiệu quả.

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 một lần đi qua mã nguồn một lần Bất kỳ ký hiệu nào được sử dụng trước khi được xác định sẽ yêu cầu "errata" ở cuối mã đối tượng (hoặc, ít nhất, không sớm hơn điểm mà biểu tượng được xác định) báo cho trình liên kết hoặc trình tải "quay lại" và ghi đè lên giữ chỗ đã được để lại nơi sử dụng biểu tượng chưa xác định.

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

Trong cả hai trường hợp, trình biên dịch phải có khả năng xác định kích thước của mỗi lệnh trên các đường chuyền ban đầu để tính địa chỉ của các ký hiệu tiếp theo Điều này có nghĩa là nếu kích thước của một hoạt động đề cập đến một 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 tiên gặp thao tác và nếu cần, hãy đệm nó bằng một hoặc nhiều lệnh "no- operation" trong một lần vượt qua hoặc errata Trong một trình biên dịch với tối ưu hóa lỗ nhìn trộm, các địa chỉ có thể được tính toán lại giữa các lần chuyển để cho phép thay thế mã bi quan bằng mã được điều chỉnh theo khoảng cách chính xác từ mục tiêu.

Lý do ban đầu cho việc sử dụng bộ hợp dịch một lần là tốc độ hợp dịch - thường thì lần thứ hai sẽ yêu cầu tua lại và đọc lại nguồn chương trình trên

Ví dụ: trong đoạn mã sau, trình hợp dịch một lần có thể xác định địa chỉ của BKWD tham chiếu ngược khi hợp dịch câu lệnh S2, nhưng không thể xác định địa chỉ của FWD tham chiếu chuyển tiếp khi hợp dịch câu lệnh nhánh S1; thật vậy, FWD có thể không được xác định Trình hợp dịch hai lần sẽ xác định cả hai địa chỉ trong lần 1, vì vậy chúng sẽ được biết khi tạo mã trong lần 2.

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 (mặc dù có sẵn trên các trình hợp dịch từ thập niên 1950 cho IBM 700 series và từ thập niên 1960 cho IBM/360, cũng như 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.

Một chương trình viết bằng hợp ngữ bao gồm một chuỗi các lệnh

(instructions) dễ nhớ tương ứng với một luồng các chỉ thị khả thi

(executable) mà khi được dịch bằng một trình hợp dịch, chúng có khả năng nạp được vào bộ nhớ đồng thời thực thi được Ví dụ, 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 trên tương đương với một chỉ thị hợp ngữ dễ nhớ hơn sau: mov al, 061h thực thi (operation code / opcode), được người thiết kế tập lệnh đặt tên thay thế cho từ "move", các đối/ tham số của lệnh theo sau và ngăn cách với opcode bởi một dấu phảy ",".

Trình hợp dịch thực hiện chuyển đổi hợp ngữ sang ngôn ngữ máy và trình phân dịch (disassembler) thực hiện quá trình trên ngược lại Không giống các ngôn ngữ bậc cao, các chỉ thị hợp ngữ cơ bản thường có mối liên hệ tương ứng 1-1 với các chỉ thị ngôn ngữ máy Tuy nhiên trong một số trường hợp, một trình hợp dịch có thể bổ sung các lệnh giả (pseudo- instructions) vào tập lệnh ngôn ngữ máy nhằm cung cấp các chức năng được dùng thường xuyên Hầu hết các trình hợp dịch đa chức năng đều cung cấp thêm một tập macro phong phú để nhà sản xuất thiết bị và lập trình viên có thể tạo các mã lệnh và các dãy dữ liệu phức tạp.

Ứng dụng

Về mặt lịch sử, đã từng có một số lượng lớn các chương trình đã được viết hoàn toàn bằng hợp ngữ Trước khi xuất hiện ngôn ngữ C vào những năm

1970 và đầu thập niên 1980, các hệ điều hành độc quyền hầu như được viết bằng hợp ngữ Nhiều ứng dụng thương mại cũng được viết bằng hợp ngữ, bao gồm một khối lượng lớn các phần mềm cho máy tính lớn của IBM được các tập đoàn lớn viết Cuối cùng thì ngôn ngữ COBOL và FORTRAN đã thay thế hợp ngữ mặc dù còn nhiều tổ chức vẫn giữ lại các kiến trúc ứng dụng kiểu hợp ngữ trong suốt thập niên 1980 Hầu hết các máy vi tính (micro-computer) buổi đầu chủ yếu vận hành bằng hợp ngữ, bao gồm các hệ điều hành và các ứng dụng lớn Lý do là bởi các hệ thống này bị hạn chế về tài nguyên, thiết bị, bộ nhớ và kiến trúc hiển thị cũng như các dịch vụ hệ thống dễ lỗi Lý do quan trọng hơn, có lẽ là sự thiếu hụt các trình biên dịch bậc cao tiên tiến vốn thích hợp cho các hệ thống vi tính Các ứng dụng lớn viết bằng hợp ngữ điển hình như hệ điều hành CP/M và MS-DOS, bảng tính spreadsheet và Lotus- 123 trong các máy IBM-PC đời đầu, và nhiều các 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 còn một dạng "ứng dụng" không được khuyến khích đó là virus máy tính Trong các những năm '80 và đầu những năm '90 hầu hết virus máy tính được viết bằng hợp ngữ, lý do là sự giảm thiểu kích thước của virus cũng như khả năng can thiệp sâu vào hệ thống của hợp 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

Khi các thiết bị hoạt động độc lập mà không cần tài nguyên hay các thư viện liên kết với ngôn ngữ bậc cao Đây có lẽ là 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 dùng các chỉ thị vi xử lý mà trình biên dịch không tận dụng được

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ý

Khi một hệ thống cần phải viết mã thủ công để tận dụng nguồn tài nguyên hạn hẹp Ngày nay điều đó có vẻ không phổ biến nữa do giá cả CPU giảm đồng thời hiệu năng hoạt động CPU đã 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ể chọn một ngôn ngữ cấp thấp như C để viết các ứng dụng cần hiệu năng cao, tuy điều đó không dễ dàng bởi một ứng dụng viết bằng C sẽ không hiểu quả hơn ứng dụng viết bằng hợp ngữ

Ngoài ra, hợp ngữ vẫn còn được giảng dạy trong hầu hết các chương trình Khoa học máy tính, các khái niệm nền tảng vẫn có ý nghĩa quan trọng Chẳng hạn 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 được nghiên cứu một vậy để hiểu các khái niệm cơ sở đó cách tốt nhất là nghiên cứu hợp ngữ của nó May thay, hầu như các máy tính hiện đại đều có các tập lệnh tương tự nhau, do đó chỉ nắm được một hợp ngữ cũng có đủ để hiểu được các khái niệm cơ bản ở các hợp ngữ trên 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 thường được dùng cho BIOS lưu trong ROM của một hệ thống để khởi tạo và kiểm tra phần cứng hệ thống trước khi khởi tạo hệ điều hành Khi khởi tạo phần cứng hoàn thành, quyền điều khiển hệ thống sẽ được chuyển qua cho các phần mã thự thi khác (thường được viết bằng ngôn ngữ bậc cao) Điều này cũng đú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 các ngôn ngữ bậc cao thành hợp ngữ trước khi biên dịch thực sự, điều này cho phép kiểm tra mã phục vụ mục đích gỡ rối và tối ưu Các ngôn ngữ cấp thấp như C thường cung cấp các cú pháp đặc biệt cho phép nhúng trực tiếp hợp ngữ vào mã nguồn Các chương trình tận dụng tính năng này như Nhân Linux có thể tạo ra các tầng trừu tượng để sử dụng trên nhiều kiến trúc phần cứng khác nhau.

Hợp ngữ cũng có giá trị trong kỹ thuật dịch ngược (reverse engineering) Các chương trình lớn vốn chỉ được phân phối dưới dạng mã máy, chúng thường dễ dàng dịch ngược thành hợp ngữ để kiểm tra nhưng rất khó dịch ngược ra mã ngôn ngữ bậc cao.

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: 02/12/2022, 08:33

HÌNH ẢNH LIÊN QUAN

Cổng AG P: Chỉ dùng cho card màn hình - (TIỂU LUẬN) báo cáo CUỐI kì bộ môn KIẾN TRÚC máy TÍNH đề tài  tìm HIỂU về NHỮNG CÔNG NGHỆ mới có TRÊN MAINBOARD và NGÔN NGỮ lập TRÌNH ASSEMBLY
ng AG P: Chỉ dùng cho card màn hình (Trang 13)
10.Bảng kết nối các thiết bị - (TIỂU LUẬN) báo cáo CUỐI kì bộ môn KIẾN TRÚC máy TÍNH đề tài  tìm HIỂU về NHỮNG CÔNG NGHỆ mới có TRÊN MAINBOARD và NGÔN NGỮ lập TRÌNH ASSEMBLY
10. Bảng kết nối các thiết bị (Trang 14)
Bảng kết nối là công cụ kết nối tín hiệu và điều khiển đến với - (TIỂU LUẬN) báo cáo CUỐI kì bộ môn KIẾN TRÚC máy TÍNH đề tài  tìm HIỂU về NHỮNG CÔNG NGHỆ mới có TRÊN MAINBOARD và NGÔN NGỮ lập TRÌNH ASSEMBLY
Bảng k ết nối là công cụ kết nối tín hiệu và điều khiển đến với (Trang 14)
2.1 Cấu hình chi tiết - (TIỂU LUẬN) báo cáo CUỐI kì bộ môn KIẾN TRÚC máy TÍNH đề tài  tìm HIỂU về NHỮNG CÔNG NGHỆ mới có TRÊN MAINBOARD và NGÔN NGỮ lập TRÌNH ASSEMBLY
2.1 Cấu hình chi tiết (Trang 16)
cấu hình CPU và làm mát nhằm dự đốn cấu hình tối ưu và kéo từng hệ thống chạy đến mức giới hạn. - (TIỂU LUẬN) báo cáo CUỐI kì bộ môn KIẾN TRÚC máy TÍNH đề tài  tìm HIỂU về NHỮNG CÔNG NGHỆ mới có TRÊN MAINBOARD và NGÔN NGỮ lập TRÌNH ASSEMBLY
c ấu hình CPU và làm mát nhằm dự đốn cấu hình tối ưu và kéo từng hệ thống chạy đến mức giới hạn (Trang 23)
dụng 1 năm và bảng điều khiển trực quan UEFI BIOS có MemTest86 tích hợp - (TIỂU LUẬN) báo cáo CUỐI kì bộ môn KIẾN TRÚC máy TÍNH đề tài  tìm HIỂU về NHỮNG CÔNG NGHỆ mới có TRÊN MAINBOARD và NGÔN NGỮ lập TRÌNH ASSEMBLY
d ụng 1 năm và bảng điều khiển trực quan UEFI BIOS có MemTest86 tích hợp (Trang 27)
w