Khuôn dạng chỉ thị ngôn ngữ assembly

Một phần của tài liệu Bài giảng kiến trúc máy tính pot (Trang 118 - 120)

Mặc dù cấu trúc của một chỉ thị ngôn ngữ assembly( trong chương trình này chúng ta sẽ trường gọi ngắn gọn là chỉ thị hay instruction) rất giống cấu trúc của một chỉ thị máy mà nó biểu diễn, các ngôn ngữ assembly cho các máy khác nhau và cho các mức khác nhau lại khá giống nhau, điều đó cho phép chúng ta có thể thảo luận chung về ngôn ngữ assembly. Trên hình 7-01 là đoạn chương trình ngôn ngữ assembly cho các máy dùng bộ vi xử lý 80386, thực hiện việc tính N = I + J + K. Trong đoạn chương trình lấy làm ví dụ, phần chương trình nằm bên trên dòng có dấu chấm thực hiện việc tính toán, còn các dòng nằm bên dưới là các lệnh cho assembler dành ra các ô nhớ cho biến I, J, K và N chứ không phải là các biểu diễn ký hiệu cho các chỉ thị máy. Các chỉ thị là mệnh lệnh cho assembler thường được gọi là chỉ thị assembler. Trường nhãn Trường mã phép toán Trường toán hạng Trường chú thích

FORMUL MOV EAX, I ;Nạp giá trị biến I vào thanh ghi EAX ADD EAX, J ;Cộng giá trị biến J vào thanh ghi EAX ADD EAX, K ;Cộng giá trị biến K vào thanh ghi EAX MOV N, EAX ;Chứa kết quả I+J+K vào biến N

...

I: DD 2 ;Dành sẵn 4 byte bộ nhớ, khởi tạo giá trị 2 J: DD 3 ;Dành sẵn 4 byte bộ nhớ, khởi tạo giá trị 3 K: DD 4 ;Dành sẵn 4 byte bộ nhớ, khởi tạo giá trị 4 N: DD 0 ;Dành sẵn 4 byte bộ nhớ, khởi tạo giá trị 0

Chỉ thị - Instruction

Instruction là chỉ thị ngôn ngữ assembly, nó có 4 trường: trường nhãn, trường mã phép toán, trường toán hạng và trường chú thích. Có những chỉ thị chỉ có một trường mã phép toán, có chỉ thị có thêm trường các toán hạng, còn trường chú thích có hay không tùy thuộc người viết chương trình.

Nhãn Mã phép toán Toán hạng ; Chú thích

Nhãn (Label):

Nhãn là một dãy các ký hiệu chữ cái, chữ số...được sử dụng như một tên, gán cho các địa chỉ bộ nhớ, các lệnh trong chương trình có thể dùng tên này thay cho địa chỉ bộ nhớ mà nhãn đại diện. Nếu nhãn đứng trước các chỉ thị của ngôn ngữ assembly thì các lệnh nhảy có thể dùng nhãn cày thay cho địa chỉ đích nếu chúng cần nhảy tới lệnh được gán nhãn. Nhãn cũng cần cho các chỉ thị assembler có nhiệm vụ sắp đặt bộ nhớ, thí dụ DD (Define Double Word) – lệnh cho assembler dành sẵn 1 wỏd kép (4 byte), để có thể truy cập được dữ liệu cất ở đó thông qua tên nhãn.

Các ngôn ngữ assembly cụ thể có các yêu cầu khác nhau về chiều dài của dãy ký tự dùng làm nhãn, các ký tự được phép sử dụng trong nhãn. v. v.

Trên hình 7-1 chúng ta thấy có 5 nhãn: FORMUL, I, J, K và N, các nhãn kết thúc bằng ký tự “ : ”, đây chỉ là một quy ước cụ thể trong một số ngôn ngữ assembly,không phải là điều gì đặc biệt quan trọng.

Mã phép toán (Opcode – Operation code)

Mã phép toán là chữ viết tắt gợi trí nhớ của ngôn ngữ assembly đại diện cho một chỉ thị máy bằng số. Thí dụ ADD, MOV trên hình 7-01.

Trường toán hạng (operand)

Báo cho bộ xử lý biết phải tìm các toán hạng ở đâu, hay nói cách khác trường này chỉ ra địa chỉ của các toán hạng nếu phép toán có toán hạng. Tất nhiên cũng có những chỉ thị assembly không có toán hạng.

Trường chú thích

Chú thích (comment) thường được quy ước phải viết sau ký tự ‘ ; ‘ và kết thúc bởi dãy xuống dòng. Chú thích dùng để diênc giải dòng lệnh trong chương trình để việc đọc được dễ hiểu hơn. Trong một chương trình dài các chú thích rất quan trọng và cần thiết.

Giả chỉ thị - Pseudoinstruction

Trong chương trình viết bằng ngôn ngữ assembly, các chỉ thị cho assembler

Tên Chỉ thị assembler Đối số ;Chú thích

Tên

Cũng giống như trường nhãn, chỉ thị assembler có thể có hoặc không có trường tên. Tên là một dãy các ký hiệu chữ cái, chữ số... Có thể dùng tên để gán cho các địa chỉ bộ nhớ và sử dụng tên này như các biến trong các chương trình ngôn ngữ lập trình bậc cao. Cũng có thể gán tên cho các hằng số mà chương trình sẽ sử dụng.

Chỉ thị assembler

Cũng tương tự như các chỉ thị (instruction), đó là chữ viết tắt gợi trí nhớ của ngôn ngữ assembly, nhưng đó là lệnh cho chính chương trình dịch – assembler, báo cho nó biết phải làm gì hoặc làm như thế nào. Nói chung không có quy tắc nào giúp ta phân biệt chỉ thị (instruction) và vhỉ thị assembler (Pseudoinstruction) cả, chúng đều là các từ viết tắt gợi nhớ, người lập trình bằng ngôn ngữ assembly chỉ có cách tra cứu và dần dần thược “mặt” chúng.

Trường đối số (argument)

Tùy thuộc vào chỉ thị assembler cụ thể, đối số có thể là một địa chỉ nhớ hoặc một số để sử dụng cùng với chỉ thị và do chỉ thị xác định.

Trường chú thích

Chú thích thường viết sau ký hiệu ‘ ; ‘ và kết thúc bởi dãy xuống dòng (Enter). Các chú thích dùng để diễn giả dòng lệnh trong chương trình, để việc đọc lại được dễ hiểu hơn.

Một phần của tài liệu Bài giảng kiến trúc máy tính pot (Trang 118 - 120)