1 / 13

L7 – Assembler Directives

ECE 2560. L7 – Assembler Directives. Department of Electrical and Computer Engineering The Ohio State University. Lect 6 – Assembler Directives. What are assembler directives? The MSP 430 directives to Specify where user code is Reserve space for variables

hmolina
Download Presentation

L7 – Assembler Directives

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ECE 2560 L7 – Assembler Directives Department of Electrical and Computer Engineering The Ohio State University ECE 3561 - Lecture 1

  2. Lect 6 – Assembler Directives • What are assembler directives? • The MSP 430 directives to • Specify where user code is • Reserve space for variables • Set the value for constants • Other useful directives • This assembler directives covered in this class are only part of those available. ECE 3561 - Lecture 1

  3. Assembler Directives • What are assembler directives? • How do you set up an area of memory to be data • For temporary data of the program • Set up constants for use in my program • And other possible uses • Assembler Directives are a means by which you can ‘direct’ the assembler to take specific actions. ECE 3561 - Lecture 1

  4. Where is information on them • Information on the assembler directives can be found in CCS help. • Do a search for assembler directives and the top item is ‘Chapter 5. Assembler Directives. • There are a lot of directives. In class only a small number of them will be addressed. • Section 5.1 is the Directives Summary • Chapter 2 also has information on the assembler directives. ECE 3561 - Lecture 1

  5. High level directives • The code you develop is divided into sections named • .text – Used for program code (ROM) • .data – Assembles the directives following into the .data section and RAM memory area of the selected MSP430xxxx version. • .intvec – Creates an interrupt vector entry in a named section that points to an interrupt routine name. (located in ROM) More on this later. ECE 3561 - Lecture 1

  6. When starting a new project • The code template • Note .text section • Code goes here • You need to terminate execution of your code • loop JMP loop ECE 3561 - Lecture 1

  7. Where to put data? • Use: To reserve space for data variable used in your program. • The data registers are one place to use for the data variables in a program. • Limited to 12 specific locations R5-15. • Program will often have need of more than 12 variables. • The first program could have use mostly register but used memory instead. • Where to store them? IN MEMORY • There needs to be a means to reference them, i.e., they need to be named. ECE 3561 - Lecture 1

  8. Storing variables in memory • First need a section for variables • .data • Examples of this were shown during the demo. • For example • .word reserves space and initializes the value - use: • label .word 0xFFFF • label2 .word 0xAAAA,0x1111,0x2222 • .byte reserves space for byte values - use: • label3 .byte 0x11 • label4 .byte 0x40 ECE 3561 - Lecture 1

  9. Declare and initialize values • .bits – initializes one or more successive bits (use of one bit will use the entire byte) • .char declares and initialized one or more successive bytes to be the ASCII values of the character. • lbl .char 8, “def” • Will place the values 8h in memory, then the ascii for d (64), ascii for e (65), ascii for f (66) • .string – initializes one of more text strings • Mlbl .string “now is the time” ECE 3561 - Lecture 1

  10. More value types • .int – initializes one or more 16-bit integers • .long – initializes one or more 32-bit integers • .float – initializes one or more floating point numbers – IEEE format – 32 bits • .uint – initializes one or more unsigned integers • .long – initializes one or more 32-bit integers ECE 3561 - Lecture 1

  11. Just want to reserve space • To reserve space in RAM and attach a label to it so it can be referenced • .bes – Used for uninitialized objects (global data – variables) • label .bes size - label points to the end of the reserved space • .space – Used for uninitialized objects • splbl .space size2 - splbl points to the start of the reserved space ECE 3561 - Lecture 1

  12. For further reference • For a further explanation of the assembler directive you can look in section 5.12, Directives Reference, in the MSP430 Assembly Language Tool User’s Guide (available in Code Composer help). ECE 3561 - Lecture 1

  13. Summary - Assignment • These are the most relevant directives for this class. • No new assignment. ECE 3561 - Lecture 1

More Related