Chỉ dẫn định nghĩa kí hiệu

Một phần của tài liệu Bài giảng Vi điều khiển: Phần 2 - ĐH Phạm Văn Đồng (Trang 35 - 36)

2204 7435 4 MOV A,#35H

7.5.2Chỉ dẫn định nghĩa kí hiệu

Những chỉ dẫn này tạo các ký hiệu để biểu diễn các segment, các thanh ghi, số và địa chỉ.

Không được sử dụng nhãn cho chỉ dẫn. Những ký hiệu được định nghĩa bởi các chỉ dẫn này là duy nhất, ngoại trừ chỉ dẫn SET cho phép định nghĩa lại.

v EQU hay SET: có chức năng gán 1 ký số hay ký hiệu thanh ghi cho tên ký hiệu được đặt tả.

Cách sử dụng: symbol equ expr symbol set expr

Trong đó symbol là ký hiệu do người dùng định nghĩa và expr là biểu thức.

Ví dụ 21: BDN EQU R2 GIAY SET 40

v Segment: có chức năng khai báo segment tái định vị được. Cách sử dụng: symbol segment segment_type

Trong đó symbol là ký hiệu do người dùng định nghĩa và segment_type là kiểu segment.

Có các kiểu segment như sau: - Code: segment mã chương trình.

- Xdata: segment vùng dữ liệu chứa ở bộ nhớ bên ngoài.

- Data: segment vùng dữ liệu nội có địa chỉ trực tiếp từ 00H÷7FH

- Idata: segment vùng dữ liệu nội có địa chỉ gián tiếp từ 00H÷7FH đối với 8051 và 00H÷FFH đối với 8052.

- Bit: segment vùng nhớ bit nằm trong vùng nhớ cho phép truy xuất bit từ 20H÷2FH

Ví dụ 22: EPROM SEGMENT CODE

Khai báo ký hiệu eprom là segment kiểu code. Chú ý phát biểu này chỉ khai báo EPROM là kiểu code, để sử dụng segment này thì phải sử dụng chỉ dẫn RSEG

CODE/DATA/IDATA/XDATA/BIT

Dùng để gán địa chỉ của kiểu tương ứng với ký hiệu, tuy nhiên nếu có sử dụng thì assembler kiểm tra kiểu.

Ví dụ 23:

LOC OBJ LINE SOURCE

0005 1 flag1 equ 05h 0005 2 flag2 bit 05h 0000 D205 3 SETB flag1 0002 D205 4 SETB flag2 0004 750500 5 MOV flag1,#0 0007 750500 6 MOV flag2,#0 ***ERROR #37, LINE #6 (0), DATA SEGMENT ADDRESS EXPECTED

7 end

SYMBOL TABLE LISTING --- --- ---

N A M E T Y P E V A L U E A T T R I B U T E S

FLAG1. . . NUMB 0005H A

FLAG2. . . B ADDR 0020H.5 A REGISTER BANK(S) USED: 0

ASSEMBLY COMPLETE, 1 ERROR FOUND (6)

Trong chương trình ví dụ trên ta đã khai báo flag1 là ô nhớ có địa chỉ 05H, flag2 là bit có địa chỉ 05H. Hai lệnh setb khi biên dịch không có lỗi vì assembler xem chúng là các bit có địa chỉ 05H.

Lệnh thứ 5 khi biên dịch sẽ xem flag1 là ô nhớ có địa chỉ 05H, nhưng lệnh thứ 5 thì khi biên dịch sẽ báo lỗi vì lệnh MOV không thể thực hiện đối với ô nhớ bit.

Một phần của tài liệu Bài giảng Vi điều khiển: Phần 2 - ĐH Phạm Văn Đồng (Trang 35 - 36)