Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007. 2. Chapter
Overview ... Examples: 30d, 6Ah, 42, 1101b. Hexadecimal beginning with letter: ...
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
Reserved Words and Identifiers • Reserved words cannot be used as identifiers • Instruction mnemonics, directives, type attributes, operators, predefined symbols • See MASM reference in Appendix A
• Identifiers • 1-247 characters, including digits • not case sensitive • first character must be a letter, _, @, ?, or $
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
7
Irvine, Kip R. AssI 3 iKssI 3 lJ 37anguage fosI 3 lr InsI 3 ltssI 3 il-IrssI 3 i(Ir1(s R)-7(,(.)-2.3( )200)6.5(7sI 3 i.)]TJT / T241 Tf0 10602 -10602 0 5340.299 711.715 Tm0 gc.0 in[(9)Tj/TT2
Example: Adding and Subtracting Integers TITLE Add and Subtract
(AddSub.asm)
; This program adds and subtracts 32-bit integers. INCLUDE Irvine32.inc
Irvine, Kip R. Assembly Language fo i16l-Based Compu16rs, 20076.
15
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
21
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
22
Assemble-Link Execute Cycle • •
The following diagram describes the steps from creating a source program through executing the compiled program. If the source code is modified, Steps 2 through 4 must be repeated.
Source
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
23
Listing File • Use it to see how your program is compiled • Contains • • • • •
source code addresses object code (machine language) segment names symbols (variables, procedures, and constants)
• Example: addSub.lst
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
24
Data Definition Statement
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
30
Defining BYTE and SBYTE Data
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
31
Defining Byte Arrays
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
32
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
Defining Strings
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
(3 of 3)
35
Defining WORD and SWORD Data • Define storage for 16-bit integers
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
37
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
38
Adding Variables to AddSub
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
41
Declaring Unitialized Data • Use the .data? directive to declare an unintialized
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
42
Calculating the Size of a Byte Array
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
46
Calculating the Size of a Word Array Divide total number of bytes by 2 (the size of a word)
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
47
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.48
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
TEXTEQU Directive
•i98 BS(efne) a symbol as either an integer or •7C emacro]TJ0 / -19.321 TcD.0Tc.00014
Irvine, Kip R. Assembly Language for Intel-Based Computers, 2007.
50