Thông tin tài liệu:
Hợp ngữ ( assembly language ) là ngôn ngữ của máy tính có vị trí ở giữa ngôn ngữ máy và ngôn ngữ cấp cao.Các ngôn ngữ cấp cao như Pascal,C sử dụng các từ và các phát biểu dễ hiểu hơn. Ngôn ngữ máy ( machine language ) là ngôn ngữ ở dạng số nhị phân của máy tính.
Nội dung trích xuất từ tài liệu:
Chương III : Lập trình hợp ngữ và tóm tắt tập lệnh Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh CHƯƠNG III : LẬP TRÌNH HỢP NGỮ VÀ TÓM TẮT TẬP LỆNHI. LẬP TRÌNH HỢP NGỮ : Hợp ngữ ( assembly language ) là ngôn ngữ của máy tính có vị trí ởgiữa ngôn ngữ máy và ngôn ngữ cấp cao.Các ngôn ngữ cấp cao nhưPascal,C sử dụng các từ và các phát biểu dễ hiểu hơn. Ngôn ngữ máy (machine language ) là ngôn ngữ ở dạng số nhị phân của máy tính. Mộtchương trình viết bằng ngôn ngữ máy là một chuỗi các byte nhị phân biểudiễn các lệnh mà máy tính thực thi được. Hợp ngữ thay thế các mã nhị phân của ngôn ngữ máy bằng các mã gợinhớ giúp ta dễ nhớ và dễ lập trình hơn. Ex : lệnh cộng có mã nhị phân là “10110011” được hợp ngữ thay thếbằng mã gợi nhớ ADD Một chương trình viết bằng hợp ngữ không thể được thực thi trực tiếp.Sau khi được viết xong chương trình này phải được dịch thành ngôn ngữmáy. Một chương trình viết bằng hợp ngữ là chương trình viết dưới dạngcác ký hiệu, các mã gợi nhớ … trong đó mỗi phát biểu tương ứng với mộtlệnh của ngôn ngữ máy. Mỗi dòng lệnh được chia thành các trường cách biệt nhau bởi khoãngtrắng hoặc Tab. Khuôn dạng tổng quát của mỗi dòng lệnh như sau: [ label : ] mnemonic [ operand ][,operand ][, … ] [;comment]Label: nhãnMnemonic : mã gợi nhớOperand : toán hạngComment : chú thích a. Trường nhãn : Nhãn là một loại ký hiệu và được nhận dạng bằng dấu “:” ( kết thúc nhãn). Nhãn phải được bắt đầu bằng một ký tự chữ, dấu hỏi “?”,dấu nối dưới “_” và tiếp theo phải là các ký tự chữ,các số, dấu “?”,dấu “_”. Nhãn có thể dài tối đa là 31 ký tự ở dạng chữ thường hoặc chữ in. Nhãn không được trùng với các từ khóa ( các mã gợi nhớ, các chỉ dẫn, các toán tử hoặc các ký hiệu tiền định nghĩa ). b. Trường mã gợi nhớ : Mã gợi nhớ là các ký hiệu biểu diễn cho các lệnh . Trường mã gợi nhớ của lệnh theo sau trường nhãn . Ex : MOV,ANL,SETB …. Trang 16 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng Anh c. Trường toán hạng : Trường toán hạng theo sau trường mã gợi nhớ. Trường này chứa địa chỉ hoặc dữ liệu mà lệnh sẽ sử dụng. Một nhãn có thể được dùng để biểu thị địa chỉ của dữ liệu .Các khả năng của trường toán hạng phụ thuộc vào thao tác. Có thao tác không có toán hạng (ex: lệnh RET,NOP..) trong khi các thao tác khác cho phép nhiều toán hạng cách nhau bởi dấu phẩy. d. Trường chú thích : Các ghi chú dùng để làm rõ chương trình được đặt trong trường chú thích ở cuối dòng lệnh. Các chú thích được bắt đầu bằng dấu “ ; ”. Các chú thích có thể chiếm nhiều dòng riêng và cũng phải bắt đầu bằng dấu “ ; “ . Các chương trình con và các phần có kích thước lớn của chương trình thường bắt đầu bởi một khối chú thích bao gồm nhiều dòng chú thích để giải thích các đặt trưng của chương trình.II. TÓM TẮT TẬP LỆNH : Cũng như các bộ vi xử lý 8 bit các lệnh của 8051 có các opcode 8 bit ,do vậy số lệnh có thể lên đến 256 lệnh ( thực tế có 255 lệnh ,1 lệnh khôngđược định nghĩa ). Ngoài opcode một số lệnh còn có thêm 1 hoặc 2 byte nữacho dữ liệu hoặc địa chỉ . Tập lệnh có 139 lệnh 1 byte , 92 lệnh 2 byte và 24lệnh 3 byte .1. CÁC KIỂU ĐỊNH ĐỊA CHỈ : Các kiểu định địa chỉ là phần cần thiết cho toàn bộ tập lệnh của mỗimột bộ vi xử lý , bộ vi điều khiển . Các kiểu định địa chỉ cho phép ta xácđịnh rõ nguồn và đích của dữ liệu theo nhiều cách khác nhau phụ thuộc vàotình huống lập trình ,có 8 kiểu định địa chỉ : Thanh ghi ( register ) Trực tiếp (direct ) Gián tiếp ( indirect ) Tức thời ( immediate ) Tương đối ( relative ) Tuyệt đối ( absolute ) Dài ( long ) Chỉ số ( index )1.1. ĐỊNH ĐỊA CHỈ THANH GHI : Kiểu định địa chỉ thanh ghi đựơc ký hiệu là Rn, trong đó n có giá trị từ0-7, A, DPTR, PC, C và cặp thanh ghi AB. Ex : ADD A,R7 Trang 17 Bài giảng Vi điều khiển Biên soạn: Ths Lê Hoàng AnhCó 4 dãy thanh ghi nhưng ở một thời điểm chỉ có một dãy tích cực. Các dãythanh ghi chiếm 32 byte đầu tiên của RAM dữ liệu trên chip ( 00H-1FH ).Để chọn dãy thanh ghi tích cực ta tác động lên các bit RS1,RS0 của từ trạngthái chương trình PSW. Khi hệ thống được reset thì dãy thanh ghi 0 mặcđịnh được tích cực.1.2. ĐỊNH ĐỊA CHỈ TRỰC TIẾP : Kiểu định địa chỉ trực tiếp được sử dụng để truy xuất các biến nhớhoặc các thanh ghi trên chip. Ex : MOV A,55H MOV P1,A ( P1 ...