1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

VI XỬ LÝ 8051 chap7 assembly programming

12 0 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 1,68 MB

Nội dung

17-May-12 Chapter Assembly Language Programming Chap Assembly Language Programming • Assembler – Change mnemonic code into machine code – Label can be used to represent symbolic address/data – Directives : like pre-processing operator (#) in C language • Linkage Editor – Link objective code into executable file (*.obj → *.exe) 17-May-12 FIGURE 7–1 Assembling a source program Assembler FIGURE 7–2 Pseudo code sketch of a two-pass operator PASS – Establish symbol table - Computing address/symbol PASS – Convert mnemonic code into machine code 17-May-12 FIGURE 7–3 Use of the generic JMP mnemonic Symbol Table : Symbol →Address/Data • Assembly program – Machine instructions MOV A, #0 – Assembler Directives • Like Variable declaration in high-level language – Assembler controls • Conditional compiling – Comments After ; to EOL …… ; this is a comment 17-May-12 • Formant of Assembly language – case insensitive [label:] mnemonic [operation] [,operand] ; comment Example : PAR … EQU 500 ; #define symbol JNB TI, $ ; HERE: JNB TI, HERE • Constant expression – Implement by assembler Examples: MOV A, ‘9’-’0’ ; ‘ ‘ means char constant • Operators in constant expressions – Arithmetic : + - * / MOD – Logic : AND OR NOT XOR – Relational : EQ NE LT LE GT GE = < >= – Special : SHR SHL HIGH LOW () 17-May-12 • Precedence of constant () HIGH LOW / MOD SHR SHL +EQ NE LT LE GT GE = NOT AND OR XOR < >= • Directives (1) Assembler state control • ORG – define the location of the code • END – directive to tell assembler the end of source file • USING – set the register bank Examples : ORG 100H ORG $+100H USING PUSH AR7 ; now AR7 means $23H … END 17-May-12 (2) Symbol define – – – – – Segment EQU Storage initialization/reservation Program link Segment selection (A) Segment define In low-level language, the programmer need to manage the location of program/data in memory symbol … SEGMENT segment_type ; the following program was form a segment ; called symbol, ; The content is segment_type (code or data) segment_type can be one of • CODE (program) • XDATA (the extended data segment) • DATA (direct address space, 00-7fH) • IDATA (indirect address space, 00-7FH 80-FFH for 8052) • BIT (bit address space) • CSEG AT (equivalent to SEGMENT CODE) • DSEG AT • XSEG AT • ISEG AT • BSEG AT 17-May-12 (B) EQU like the named constant define in C (#define) Example: BASE EQU 10 other constants : #10H, $(current location) (C) Storage initialization/reservation – – – – DS DBIT DB DW (define space, like unintialized array) (define bit data) (define byte data) (define word data, low-byte in lower address) Example 1: LENGTH: BUFFER: PROG … LOOP: DSEG AT 30H EQU 40 DS LENGTH SEGMENT MOV MOV MOV BJNZ CODE R7, #LENGTH R0, #BUFFER @R0, #0 R7, LOOP … END 17-May-12 Example 2: XLENGTH: XBUFFER: PROG … XSEG AT 4000H EQU 1000 DS XLENGTH SEGMENT MOV CLR MOVX INC MOV CJNE MOV CJNE LOOP: CODE DPTR, #XLENGTH A @DPTR, A DTPR A, DPL A, #LOW(XBUFFER+XLENGTH+1),LOOP A, DPH A, #HIGH(XBUFFER+XLENGTH+1),LOOP … END FIGURE 7–4 Use of the EXTRN and PUBLIC assembler directives (3) Program link Multi-file : EXTERN, PUBLIC directive 17-May-12 FIGURE 7–5 Defining and initiating absolute and relocatable segments RSEG directive – reallocatable segment FIGURE 7–6 Assembler controls supported by ASM51 17-May-12 FIGURE 7–6 (continued) FIGURE 7–7 Assembler controls supported by ASM51 Linker operation 10 17-May-12 FIGURE 7–8a Annotated example: linking relocatable segments and modules (a) ECHO.LST (b) IO.LST (c) EXAMPLE.M51 Address-relative content Need to fix in linkage - reallocatable FIGURE 7–8a Annotated example: linking relocatable segments and modules (a) ECHO.LST (b) IO.LST (c) EXAMPLE.M51 Symbol Table 11 17-May-12 FIGURE 7–8d (continued) (c) EXAMPLE.M51 Annotated example: linking relocatable segments and modules (a) ECHO.LST (b) IO.LST Output of linkage editor -Symbol table -Reallocatable address were computed already 12

Ngày đăng: 13/04/2023, 08:09

w