Tài liệu Lập trình hợp ngữ_chương 13 docx

32 596 0
Tài liệu Lập trình hợp ngữ_chương 13 docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 1. Giới thiệu 2. Sơ đồ khối và chân 3. Tổ chức bộ nhớ 4. Các thanh ghi chức năng đặc biệt (SFR) 5. Dao động và hoạt động reset 6. Tập lệnh 7. Các mode định địa chỉ (addressing modes) 8. Lập trình IO 9. Tạo trễ 10.Lập trình Timer/Counter 11.Giao tiếp nối tiếp 12.Lập trình ngắt 13. 13. L L ậ ậ p tr p tr ì ì nh h nh h ợ ợ p ng p ng ữ ữ 2 EDITOR PROGRAM ASSEMBLER PROGRAM LINKER PROGRAM OH PROGRAM Myfile.asm Myfile.obj Other obj file Myfile.hex Myfile.lst Myfile.abs Trình dịch ASM51 Trình liên kết RL51 Trình soạn thảo Trình dịch sang HEX HEXTOBIN PROGRAM Myfile.bin Trình dịch sang BIN 3 13-1. Cấu trúc chương trình Assembly #INCLUDE "8051EQU.INC" ;include predefined constants ORG 0H ;reset routine ;locate routine at 00H LJMP MAIN ;jump to MAIN ;place interrupt routines at appropriate memory locations ORG 03H ;external interrupt 0 RETI ;or LJMP EX0ISR if enabled ORG 0BH ;timer 0 interrupt RETI ;or LJMP T0ISR if enabled ORG 13H ;external interrupt 1 RETI ;or LJMP EX1ISR if enabled ORG 1BH ;timer 1 interrupt RETI ;or LJMP T1ISR if enabled 4 ORG 23H ;serial port interrupt RETI ;or LJMP SPISR if enabled ORG 30H ;locate beginning of rest of program INITIALIZE: ;set up control registers MOV TCON,#xxH MOV TMOD,#xxH MOV PSW,#xxH MOV IE,#xxH RET DELAY: RET ISR: RETI 5 Other Subroutines: RET Other ISR Subroutines: RET MAIN: ACALL INITIALIZE SJMP $ END 6 13-2. Khuôn dạng chương trình hợp ngữ Các chương trình hợp ngữ chứa: •Lệnh (instruction) •Chỉ dẫn (directive) • Điều khiển (control) • Chú thích (comment) [Label:] mnemonic [operand][,operand][…] [;comment] 7 13-2-1. Trường nhãn • Nhãn biểu thị địa chỉ của lệnh (hoặc dữ liệu) theo sau • Phân biệt với ký hiệu, nhãn là 1 loại ký hiệu & được nhận dạng bằng dấu : • Các ký hiệu: EQU, SEGMENT, BIT, DATA • VD: PARAMETER EQU 500 PORTA EQU 0101H START: MOV A,#0FFH 8 13-2-2. Trường mã gợi nhớ •Mã gợi nhớ của lệnh: ADD, MOV, DIV, INC,… •Mã gợi nhớ của chỉ dẫn: ORG, EQU, DB,… 9 13-2-3. Trường toán hạng • Theo sau trường mã gợi nhớ •Chứa địa chỉ hoặc dữ liệu mà lệnh sử dụng [Label:] mnemonic [operand][,operand][…] [;comment] 10 13-2-4. Trường chú thích • Các ghi chú để làm rõ chương trình •Bắt đầu bằng dấu ; [Label:] mnemonic [operand][,operand][…] [;comment] [...]... cung cấp dữ liệu trong trường toán hạng • Dữ liệu tức thời được đứng trước bởi dấu # CONST EQU 100 MOV A,#0DAH ORL 50H, #CONST 13 13-2-8 Địa chỉ dữ liệu • Các lệnh sử dụng kiểu định địa chỉ trực tiếp và yêu cầu 1 địa chỉ của bộ nhớ dữ liệu trên chip (00H-7FH) hoặc địa chỉ của 1 thanh ghi chức năng đặc biệt SFR (80H-0FFH) trong trường toán hạng • MOV • MOV A, SBUF A, 5CH ;≡ MOV A, 99H 14 13- 2-9 Địa chỉ... GOOD_BYTE: (start subroutine) … RET 28 13- 4-5 Lựa chọn segment RSEG (relocatable segment): CSEG [AT address] DSEG [AT address] ISEG [AT address] BSEG [AT address] XSEG [AT address] RSEG segment_name 29 13- 5 Các điều khiển của trình dịch • Các đk ảnh hưởng đến cách trình bày tập tin liệt kê, không ảnh hưởng đến bản thân chương trình • Vị trí của chúng: – Đưa vào dòng lệnh khi hợp dịch – Đặt trong tập tin nguồn... $DEBUG $TITLE() … 30 13- 6 Trình liên kết RL51 Lập trình theo module - Modular Programming: • Phát triển các module độc lập • Các module thuộc loại tái định vị obj EDITOR PROGRAM obj obj obj Myfile.asm ASSEMBLER PROGRAM Myfile.lst RL51 - Liên kết và định vị Other obj file Myfile.obj LINKER PROGRAM Myfile.abs OH PROGRAM Myfile.hex myfile.abs & myfile.m51 31 Bài toán Phân tích ví dụ tổng hợp trang 161 171... NE, LT, LE, GT, GE 7 Ưu tiên của các toán tử 18 13- 4 Các chỉ dẫn • Điều khiển trạng thái của trình dịch hợp ngữ (ORG, END, USING) • Định nghĩa ký hiệu (SEGMENT, EQU, SET, DATA, IDATA, XDATA, BIT, CODE) • Khởi động/Dành trước vùng nhớ (DS, DBIT, DB, DW) • Liên kết chương trình (PUBLIC, EXTRN, NAME) • Lựa chọn segment (RSEG, CSEG, DSEG, ISEG, BSEG, XSEG) 19 13- 4-1 Chỉ dẫn điều khiển trạng thái ORG (Set.. .13- 2-5 Các ký hiệu đặc biệt • A, R0 R7, DPTR, PC, C, AB, $ VD: • JNB TI,$ ≡ HERE: JNB TI, HERE tránh dùng 1 nhãn 11 13- 2-6 Địa chỉ gián tiếp • Trường toán hạng có thể xác định 1 thanh ghi mà nội dung thanh ghi là địa chỉ của dữ liệu • @ chỉ ra một địa chỉ gián tiếp và thanh ghi theo sau có thể là R0 hoặc R1, DPTR hay PC tùy lệnh cụ thể ADD MOVC A,@R0 A,@A+PC (1) (2) 12 13- 2-7 Dữ liệu tức thời... đk), các lệnh nhảy và gọi tuyệt đối (AJMP, ACALL), các lệnh nhảy và gọi dài (LJMP, LCALL) 16 13- 2-11 Các lệnh nhảy và gọi tổng quát LOC OBJ 1234 1234 04 1235 80FD LINE SOURCE 1 ORG 1234H 2 START: INC A 3 JMP START 12FC 12FC 4134 12FE 0 2130 1 130 1 04 4 5 6 7 8 FINISH: ORG JMP JMP INC END START+200 START FINISH A 17 13- 3 Đánh giá biểu thức trong thời gian dịch 1 Cơ số: binary - B, octal - O or Q, decimal... đổi nội dung bộ đếm vị trí để thiết lập 1 gốc mới của chương trình cho các phát biểu theo sau • ORG 100H ;Bộ đếm vị trí = 100H • ORG ($+1000H) END Phát biểu cuối cùng của chương trình nguồn USING expression thông báo cho ASM51 về dãy thanh ghi tích cực hiện hành, AR0-7 thay cho R0-7 • USING 3 • PUSH AR7 ;dịch thành PUSH 1FH • USING 1 • PUSH AR7 ;dịch thành PUSH 0FH 20 13- 4-2 Chỉ dẫn định nghĩa ký hiệu... SQUARES: MESSAGE: CSEG AT 0100H DB 0, 1, 4, 9, 16, 25 DB ‘Login:’,0 ; binh phuong ; chuoi ky tu kt boi 0 Khi hợp dịch sẽ tạo ra KQ gán cho bộ nhớ chương trình ngoài ở dạng HEX như sau: ĐC 100 101 102 103 104 105 106 107 108 109 10A 10B 10C ND 00 01 04 09 10 19 4C 6F 67 69 6E 3A 00 27 13- 4-4 Liên kết chương trình PUBLIC EXTRN NAME symbol [,symbol][…] segment_type (symbol [,symbol][…]…) module_name MAIN.SRC... MOV EQU 05H BIT 05H FLAG1 FLAG2 FLAG1,#0 FLAG2,#0 error ”data segment address expected” 23 13- 4-3 Khởi động/dành trước vùng nhớ DS (define storage): khuôn dạng: [Label:] DS expression • Dành trước vùng nhớ tính bằng byte, chỉ dẫn này dùng cho bất kỳ loại segment nào, trừ BIT DSEG AT 30H ;đặt trong segment dữ liệu LENGTH EQU 40 ; BUFFER DS LENGTH ;dành trước 40 bytes Xóa vùng đệm trên: MOV R7, #LENGTH... 13- 2-9 Địa chỉ bit • Đặc trưng mạnh của 8051 là khả năng truy xuất bit riêng rẽ mà không cần lập mặt nạ trên các byte • 3 cách xác định địa chỉ bit trong một lệnh: 1 Địa chỉ bit đã biết 2 Dùng toán tử dot (.) giữa địa chỉ byte và vị trí bit 3 Dùng ký hiệu tiền định nghĩa VD: SETB 0E7H SETB ACC.7 JNB TI,$ JNB 99H,$ 15 13- 2-10 Địa chỉ của lệnh • Một địa chỉ của lệnh được dùng trong trường toán hạng cho các . Subroutines: RET MAIN: ACALL INITIALIZE SJMP $ END 6 13- 2. Khuôn dạng chương trình hợp ngữ Các chương trình hợp ngữ chứa: •Lệnh (instruction) •Chỉ dẫn (directive) •. file Myfile.hex Myfile.lst Myfile.abs Trình dịch ASM51 Trình liên kết RL51 Trình soạn thảo Trình dịch sang HEX HEXTOBIN PROGRAM Myfile.bin Trình dịch sang BIN 3 13- 1. Cấu trúc chương trình

Ngày đăng: 27/01/2014, 02:20

Từ khóa liên quan

Mục lục

  • 13-1. Cấu trúc chương trình Assembly

  • 13-2. Khuôn dạng chương trình hợp ngữ

  • 13-2-1. Trường nhãn

  • 13-2-2. Trường mã gợi nhớ

  • 13-2-3. Trường toán hạng

  • 13-2-4. Trường chú thích

  • 13-2-5. Các ký hiệu đặc biệt

  • 13-2-6. Địa chỉ gián tiếp

  • 13-2-7. Dữ liệu tức thời

  • 13-2-8. Địa chỉ dữ liệu

  • 13-2-9. Địa chỉ bit

  • 13-2-10. Địa chỉ của lệnh

  • 13-2-11. Các lệnh nhảy và gọi tổng quát

  • 13-3. Đánh giá biểu thức trong thời gian dịch

  • 13-4. Các chỉ dẫn

  • 13-4-1. Chỉ dẫn điều khiển trạng thái

  • 13-4-2. Chỉ dẫn định nghĩa ký hiệu

  • 13-4-3. Khởi động/dành trước vùng nhớ

  • 13-4-4. Liên kết chương trình

  • 13-4-5. Lựa chọn segment

Tài liệu cùng người dùng

Tài liệu liên quan