8/9/18
Chương
3: Ngôn ngữ máy
1
(Computer languages)
8/9/18
2
Phân loại ngôn ngữ máy
• Machine language
• Assembly language
• High-level language
8/9/18
3
Ngôn ngữ máy - Machine language
• Là ngôn ngữ duy nhất mà bộ vi xử lý nhận biết và thực hiện trực tiếp không cần sử
dụng chương trình dịch.
• Thường được viết dưới dạng chuỗi các bit nhị phân 0 và 1
• Thường khó đọc
• Lệnh thực thi nhanh vì các lệnh được đọc và thực thi trực tiếp
8/9/18
4
Thuận lợi và bất lợi của ngôn ngữ máy
• Thuận lợi:
• Lệnh thực hiện rất nhanh
• Bất lợi:
• Phụ thuộc vào máy
• Khó viết chương trình
• Dễ bị lỗi
• Khó hiệu chỉnh
8/9/18
8
Hợp ngữ -Assembly/Symbolic language
• Là ngôn ngữ lập trình mà giải quyết những hạn chế của ngôn ngữ máy
• Sử dụng mã chữ và số thay vì mã số cho các chỉ thị trong tập lệnh.
Ví dụ: sử dụng lệnh ADD thay vì sử dụng lệnh 1110 (Binary) hoặc 14 (deciaml) cho lệnh cộng.
• Cho phép các vị trí lưu trữ được biểu diễn theo dạng thức địa chỉ chữ và số thay vì
địa chỉ số
Ví dụ: biểu diễn vị trí bộ nhớ 1000, 1001, 1002 cho lệnh FIRST, SCND, ANSR
8/9/18
9
Hợp ngữ -Assembly/Symbolic language
• Cung cấp những lệnh giả được sử dụng để hướng dẫn hệ thống gắn kết các
ADDRESS
FOR SCND
ASIDE
AN
ADDRESS
FOR ANSR
8/9/18
10
Hợp ngữ -Assembly/Symbolic language
Ví dụ:
Ngôn ngữ máy dạng nhị phân
NNM dạng Hex
10111000 00000101 00000000
b8 05 00
mov ax, 5
10100011 00000000 00000002
• Assembler: là phần mềm dùng để chương trình hợp ngữ sang ngôn ngữ máy
8/9/18
12
Hợp ngữ -Assembly/Symbolic language
• Ví dụ: các lệnh trong tập lệnh của hợp ngữ
Mnemonic Opcode
Meaning
HLT
00
Halt, để kết thúc chương trình
CLA
10
Xóa và thêm vào thanh ghi A
ADD
14
Thêm nội dung vào thanh ghi A
SUB
15
0000
10
1000
Xóa và gán số thứ nhất vào FIRST của thanh ghi A
0001
14
1001
Thêm số thứ hai tại SCND của thanh ghi A
0002
30
1002
Lưu nội dung của thanh ghi A vào ANSR
0003
00
Dừng chương trình
Dễ hiệu chỉnh chương trình
•
Không quan tâm đến địa chỉ
•
Dễ dàng xác định đúng vị trí
•
Hiệu xuất cao hơn ngôn ngữ máy tính
8/9/18
16
Thuận lợi và bất lợi của ngôn ngữ Assembly
• Bất lợi:
•
Phụ thuộc vào máy
•
Người lập trình phải có kiến thức về phần cứng
•
Ngôn ngữ cấp cao – High-level language
• Ví dụ: chương trình trên được viết bằng ngôn ngữ
cấp cao C:
short i, j; // khai báo 2 biên i, j thuộc kiểu số nguyên 16 bit
i = 5; // chứa 5 vào biến i
j = i +10; // chứa kết quả tính công thức i + 10 vào biến j
8/9/18
20
Trình biên dịch - Compiler
• Là chương trình dịch dùng để chuyển một chương trình được viết bằng ngôn
ngữ cấp cao thành một chương trình bằng ngôn ngữ máy.
• Biên dịch thành một tập các chỉ thị của ngôn ngữ máy cho các chỉ thị trong
chương trình của ngôn ngữ cấp cao.
8/9/18
21
Trình biên dịch - Compiler
• Compiler:
8/9/18
22
Trình biên dịch - Compiler
• Một máy tính sẽ hỗ trợ các chương trình dịch khác nhau cho những ngôn ngữ