Tải bản đầy đủ (.pptx) (50 trang)

Bài giảng Nhập môn Tin học: Chương 3 - Từ Thị Xuân Hiền

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.38 MB, 50 trang )

5/11/21

1

Chương 3: Ngôn ngữ máy
(Computer languages)


5/11/21

2

Phân loại ngôn ngữ máy

Machine language
Assembly language
High-level language


5/11/21

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




5/11/21

4

Định dạng của lệnh trong ngôn ngữ máy

Opcode- Operation code
Opcode báo cho máy tính thực hiện lệnh nào trong tập lệnh của máy.

Operand (Address/Location)
Operand chỉ cho máy tính địa chỉ của dữ liệu mà trên đó lệnh sẽ được thực thi.


5/11/21

5

Định dạng của lệnh trong ngôn ngữ máy


5/11/21

6

Ví dụ


5/11/21


7

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


5/11/21

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


5/11/21


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 lệnh của chương trình
vào trong bộ nhớ của máy tính.
Ví dụ:
START

PROGRAM

AT 0000

START

DATA

AT 1000

SET

ASIDE

AN

ADDRESS

FOR FRST

SET


ASIDE

AN

ADDRESS

FOR SCND

ASIDE

AN

ADDRESS

FOR ANSR


5/11/21

10

Hợp ngữ -Assembly/Symbolic language
Ví dụ:
Ngơn ngữ máy dạng nhị phân

NNM dạng Hex

NN Assembly


10111000 00000101 00000000

b8 05 00

mov ax, 5

10100011 00000000 00000002

a3 00 02

mov [200], ax

10100001 00000000 00000002

a1 00 02

mov ax, [200]

00000101 00001010 00000000

05 0a 00

add ax, 10

10100011 00000010 00000010

a3 02 02

mov [202],ax



5/11/21

11

Hợp ngữ -Assembly/Symbolic language

Assembler: là phần mềm dùng để chương trình hợp ngữ sang ngơn ngữ máy


5/11/21

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

Trừ nội dung của thanh ghi A

STA

30

Lưu trữ thanh ghi A


5/11/21

13

Hợp ngữ -Assembly/Symbolic language


Ví dụ: chương trình cộng 2 số và lưu kết quả


Tương đương giữa chương trình sử dụng ngơn máy và chương trình sử dụng ngơn ngữ Assembly
14
Nội dung
Memory location

Ý nghĩa
Opcode

Address

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


1001

Lưu trữ giá trị trong FIRST

1002

Lưu trữ giá trị trong SCND

1003

Lưu trữ giá trị trong ANSR

5/11/21


5/11/21


15

Thuận lợi và bất lợi của ngôn ngữ Assembly

Thuận lợi:


Dễ hiểu và dễ sử dụng



Dễ định vị hơn và sửa lỗi chính xác



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



5/11/21

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
 Các lệnh chỉ được viết ở mức mã máy nên viết chương trình bằng hợp ngữ vẫn cịn mất thời gian và khó.


5/11/21

17

Ngôn ngữ cấp cao – High-level language

Không phụ thuộc vào máy
Người lập trình khơng cần biết nhiều về cấu trúc bên trong của máy tính,

nơi mà chương trình viết

bằng ngơn ngữ cấp cao sẽ thực thi.

Ngôn ngữ cấp cao cho phép người lập trình sử dụng các lệnh gần với ngôn ngữ tự nhiên, các biểu
thức và các ký hiệu toán học.



5/11/21

18

Ngôn ngữ cấp cao – High-level language

Các loại ngôn ngữ lập trình cấp cao :
Ngơn ngữ đa mục đích: Basic, C, C++, C#, Java, Fortran, Pascal
Ngơn ngữ lập trình stack: TrueType, Postscript,...
Lập trình khai báo: C, Pascal,...
Ngơn ngữ lập trình logic, lập trình thủ tục & lập trình hàm: Prolog, Lisp,..
Ngơn ngữ lập trình hướng đối tượng: C++, C#, Java,..


5/11/21

19

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ữ
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

cấp cao C:


5/11/21


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.


5/11/21

21

Trình biên dịch - Compiler

Compiler:


5/11/21

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ữ cấp cao khách nhau


5/11/21


23

Trình biên dịch - Compiler

Chương trình viết bằng ngơn ngữ cấp cao độc lập với máy tính


5/11/21

24

Trình biên dịch - Compiler

Kiểm tra lỗi cú pháp (Syntax errors)
Trình biên dịch ngồi chức năng biên dịch từ ngơn ngữ cấp cao sang ngơn ngữ máy cịn có chức năng kiểm
tra lỗi cú pháp.

Các loại lỗi cú pháp:
Ký tự và kết hợp các ký tự khơng hợp lệ
Trình tự của các lệnh trong chương trình khơng hợp lệ
Sử dụng tên của các biến chưa được định nghĩa


5/11/21

25

Quy


Trình biên dịch - Compiler
trình kiểm lỗi của trình biên dịch


×