Chapter 3

12 downloads 367 Views 79KB Size Report
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