Page 5 - Bai01 NNLT Assembly (Hop Ngu)
P. 5
Trường TCN KTCN HÙNG VƯƠNG GIÁO TRÌNH CẤU TRÚC MÁY TÍNH
− Không được đặt tên nhãn trùng với các ký hiệu đã quy ước như tên
các thanh ghi, các toán tử dùng trong biểu thức (PTR, BYTE,
WORLD,…). Cũng không được dùng các chỉ dẫn IFxxx hoặc
.ERRxxx để làm tên nhãn.
− Chú ý: Sau nhãn có thể có dấu hai chấm hoặc không tuỳ theo cách
sử dụng như ta thấy qua các ví dụ trên.
b) Tên gợi nhớ (Mnemonic): Xác định hành động của câu lệnh. Nó có
thể là một chỉ thị (instruction) hay một chỉ dẫn (directive).
Chỉ thị hợp ngữ gần giống như các lệnh gợi nhớ của CPU, nó xác định
các hành động mà CPU sẽ thực hiện. Khi Assembler dịch, mỗi chỉ thị sẽ được
dịch sang một lệnh mã máy tương ứng. Ví dụ như MOV, ADD, MUL, …
Chỉ dẫn là lệnh của Assembler, không phải là lệnh của CPU, các lệnh này
tuy xuất hiện trong chương trình nhưng không dịch sang mã máy tương ứng.
Các chỉ dẫn dùng để điều khiển cách dịch của Assembler đối với các lệnh khi
dịch một chương trình nguồn sang mã máy. Ví dụ như chỉ dẫn END dùng
đánh dấu nơi kết thúc chương trình. Khi đọc đến END trình hợp dịch sẽ kết
thúc việc dịch chương trình tức những lệnh kế tiếp nếu có sẽ bị bỏ qua. Nếu
không có END sẽ bị lỗi sai. Sau END ta có thể quy định nơi bắt đầu thực hiện
chương trình. Trường hợp chương trình gồm nhiều đơn thể (nhiều tập chương
trình nguồn trong một đơn thể, các đơn thể khác chỉ ghi END, không ghi nhãn
ở sau), nếu ghi nhiều thì TLINK chỉ lấy một.
c) Toán hạng (operand): Xác định các dữ liệu mà lệnh (chỉ dẫn hay
chỉ thị) cần xử lý. Có thể có một, hai hoặc nhiều hơn hoặc không có
toán hạng nào sau lệnh. Số lượng toán hạng có thể là thanh ghi, hằng,
nhãn, biến nhớ, chuỗi ký tự.
Thanh ghi (register): Các toán hạng thường dùng nhất trong chương trình.
Một số lệnh chỉ dùng toán tử thanh ghi.
− Ví dụ: MOV DI, AX
Hằng (constant): Đôi khi dùng trực tiếp hằng trong toán hạng.
− Ví dụ:
SUB AX, 4
SUB BX, ‘A’
Nhãn (Label): Nhãn có thể dùng làm toán hạng
− Ví dụ:
Num DW ?
MOV Num, AX
Biên soạn: TÔ HUỲNH THIÊN TRƯỜNG Trang 7