Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors,...

58
Microprocessor (COM 9323) Lecture 7: Addressing Modes Ahmed Elnakib, PhD Assistant Professor, Mansoura University, Egypt 1 March 9 nd , 2016

Transcript of Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors,...

Page 1: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

Microprocessor (COM 9323)

Lecture 7: Addressing Modes

Ahmed Elnakib, PhD

Assistant Professor, Mansoura University, Egypt

1March 9nd, 2016

Page 2: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

Text Book/References*

Textbook:The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition,

Barry B. Brey, Prentice Hall, 2009 (Chapter 03)

2

*The presentation is based on the text book (Tables and Figures)

Page 3: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o Explain the operation of each data-addressing mode

o Use the data-addressing modes to form assembly language statements

o Explain the operation of each program memory-addressing mode

o Use the program memory-addressing modes to form assembly and

machine language statements

o Select the appropriate addressing mode to accomplish a given task

o Detail the difference between addressing memory data using real mode

and protected mode operation

o Describe the sequence of events that place data onto the stack or

remove data from the stack

o Explain how a data structure is placed in memory and used with software

3

Objectives

Page 4: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o Efficient software development for the microprocessor requires a

complete familiarity with the addressing modes employed by

each instruction

To improve microprocessor programming skills

To get familiar with assembly language

4

Why Studding Addressing Modes?

Page 5: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o The MOV (move data) instruction is used to describe the data-

addressing modes

o The MOV instruction transfers bytes or words or doublewords of data

between two registers (data addressing modes)

between registers and memory (program memory addressing modes)

5

MOV (move data) Instruction

Page 6: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o The source is to the right and the destination is to the left, next to the opcode

MOV

o The source and destination are often called operands

o An opcode, or operation code, tells the microprocessor which operation to

perform

o This direction of flow: move from right to left

6

MOV Instruction FormatDirection of flow

opcode operands

Page 7: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o Notice that a comma always separates the destination from the source in an

instruction

o Also, note that memory-to-memory transfers are not allowed by any instruction

except for the MOVS instruction

7

MOV Instruction Format (cont’d)Direction of flow

opcode operands

Page 8: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o The MOV AX, BX instruction transfers the word contents of the source register

(BX) into the destination register (AX)

o The source never changes, but the destination always changes

MOV instruction always copies the source data into the destination

The MOV never actually picks up the data and moves it

8

MOV Instruction JobDirection of flow

opcode operands

Page 9: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o The flag register remains unaffected by most data transfer instructions

o The flag bits are normally modified by arithmetic or logic instructions

9

MOV Instruction Format: Flag RegistersDirection of flow

opcode operands

Page 10: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o The data-addressing modes include:

1. Register

2. Immediate

3. Direct

4. Register indirect

5. Base plus index

6. Register-relative

7. Base relative-plus-index

8. scaled-index mode (included in 80386 and above )

9. RIP relative addressing (available to 64-bit Pentium 4 or Core2)

o The program memory-addressing modes include:

1. Program relative

2. Direct

3. Indirect 10

Types of Addressing Mode

Page 11: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

all possible

variations of

the data-

addressing

modes

using the

MOV

instruction

11

Data Addressing

Mode

Page 12: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

1. Register Addressing

2. Immediate Addressing

3. Direct Addressing

4. Register indirect Addressing

5. Base plus index Addressing

6. Register-relative Addressing

7. Base relative-plus-index Addressing

8. Scaled-index mode Addressing

9. RIP relative Addressing

Data-addressing modes

12

Page 13: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

13

Data Addressing Modes:1. Register Addressing

o Register addressing is the most common form of data addressing

and, once the register names are learned, is the easiest to apply

o Register addressing transfers a copy of a byte or word from the

source register to the destination register

o Example: The MOV CX, DX instruction copies the word-sized

contents of register DX into register CX.

CX, DXDX CX

Page 14: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

14

o In the 80386 and above, a doubleword can be transferred from

the source register or memory location to the destination

register or memory location

o Example: The MOV ECX, EDX instruction copies the doubleword

sized contents of register EDX into register ECX.

Data Addressing Modes:1. Register Addressing (cont’d)

EDX ECXECX, EDX

Page 15: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

15

o In the Pentium 4 operated in the 64-bit mode, any 64-bit register

is also allowed

o Example: The MOV RDX, RCX instruction that transfers a copy of the quadword contents of register RCX into register RDX

Data Addressing Modes:1. Register Addressing (cont’d)

RDX, RCXRCX RDX

Page 16: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

16

Microprocessor Registers used with Register Addressing

8-bit 16-bit 32-bit 64-bit

AH, AL, BH, BL, CH, CL, DH, and DL

AX, BX, CX, DX EAX, EBX, ECX, EDX, RAX, RBX, RCX,

RDX

SP, BP, SI, and DIESP, EBP, EDI, and

ESIRSP, RBP, RDI, RSI

*CS, ES, DS, SS, FS, and GS

R8 through R15

Data Addressing Modes:1. Register Addressing (cont’d)

* With register addressing, some MOV instructions and the PUSH and POP instructions also use the 16-bit segment register names (CS, ES, DS, SS, FS, and GS).

Page 17: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

17

Recall: The Intel Programming Model

General PurposeRegisters

Stack pointer

Page 18: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

18

Recall: The Intel Programming Model (cont’d)

General PurposeRegisters

Page 19: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

19

Recall: The Intel Programming Model (cont’d)

Segment Registers

Page 20: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

20

o It is important for instructions to use registers that are the same sizeo Never mix an 8-bit register with a 16-bit register, an 8-bit register with

a 32-bit register, or a l6-bit register with a 32-bit register because this is not allowed by the microprocessor and results in an

error when assembledo Likewise never mix 64-bit registers with any other size register

Data Addressing Modes:1. Register Addressing (cont’d)

RDX, RCXRCX RDX

Page 21: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

21

o This is even true when a MOV AX, AL (MOV EAX, AL) instruction may seem to make sense Of course, the MOV AX, AL or MOV EAX, AL instructions are not

allowed because the registers are of different sizes o Note that a few instructions, such as SHL DX, CL, are exceptions to this

rule, as indicated in later chapters of the book

Data Addressing Modes:1. Register Addressing (cont’d)

RDX, RCXRCX RDX

Page 22: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

22

o It is also important to note that none of the MOV instructions affect the flag bits

o The flag bits are normally modified by arithmetic or logic instructions

Data Addressing Modes:1. Register Addressing (cont’d)

RDX, RCXRCX RDX

Page 23: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

23

o How many 8-bit subset of the MOV instruction?

- combinations are 64 different

variations (how?)

Data Addressing Modes:1. Register Addressing (cont’d)

Examples of register addressing instructions

Page 24: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

24

o A segment-to-segment register MOV instruction is about the

only type of register MOV instruction not allowed

o The code segment register is not normally changed by a

MOV instruction because the address of the next instruction

is found by both IP/EIP and CS

If only CS were changed, the address of the next instruction

would be unpredictable

Therefore, changing the CS register with a MOV instruction is not allowed.

Data Addressing Modes:1. Register Addressing (cont’d)

RDX, RCXRCX RDX

Page 25: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

25

Data Addressing Modes:1. Register Addressing (cont’d)

o The effect of executing the MOV BX, CX instruction at the point just

before the BX register changes

The source register’s contents do not change, but the destination

register’s contents do change

Only the rightmost 16 bits of register EBX change

The operation of the

MOV BX, CX

instruction

Page 26: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

26

Data Addressing Modes:1. Register Addressing (cont’d)

o This instruction moves (copies) a l234H from register CX into register BX

This erases the old contents (76AFH) of register BX, but the contents

of CX remain unchanged

o The contents of the destination register or destination memory location

change for all instructions except the CMP and TEST instructions

The operation of the

MOV BX, CX

instruction

Page 27: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

27

Data Addressing Modes:1. Register Addressing (cont’d)

o Example shows a sequence of assembled instructions that copyvarious data between 8-, 16-, and 32-bit registers

As mentioned, the act of moving data from one register to another changes only the destination register, never the source

Example:

sequence of

assembled

instructions

Page 28: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

28

Data Addressing Modes:1. Register Addressing (cont’d)

o The last instruction in this example (MOV CS,AX) assembles without error, but causes problems if executed

o If only the contents of CS change without changing IP The next step in the program is unknown and therefore causes

the program to not working correctly

Example:

sequence of

assembled

instructions

Page 29: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

29

Data Addressing Modes:1. Register Addressing (cont’d)

What is this?

Example:

sequence of

assembled

instructions

Page 30: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

30

Data Addressing Modes:1. Register Addressing (cont’d)

o The hexadecimal number at the far left is the offset address of the instruction or data This number is generated by the assembler

Example:

sequence of

assembled

instructions

Offset address

Page 31: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

31

Data Addressing Modes:1. Register Addressing (cont’d)

o The number or numbers to the right of the offset address are the machine-coded instructions or data Also generated by the assembler

Example:

sequence of

assembled

instructions

Machine-codedInstruction

Page 32: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

32

Example: if the instruction MOV AX,0 appears in a file and it is assembledo It appears in offset memory location 0100 in the Exampleo Its hexadecimal machine language form is B8 0000o The B8 is the opcode in machine language and the 0000 is the 16-bit-wide data with a

value of zeroo When the program was written, only the MOV AX,0 was typed into the editor

short assembly

language

program

that places

0000H into the

16-bit registers

AX, BX, and CX.

Data Addressing Modes:1. Register Addressing (cont’d)

Page 33: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

Data-addressing modes

33

1. Register Addressing

2. Immediate Addressing

3. Direct Addressing

4. Register indirect Addressing

5. Base plus index Addressing

6. Register-relative Addressing

7. Base relative-plus-index Addressing

8. Scaled-index mode Addressing

9. RIP relative Addressing

Page 34: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

34

Data Addressing Modes: 2. Immediate Addressing

22H ALAL, 22H

o The term immediate implies that the data immediately follow the

hexadecimal opcode in the memory

o Immediate data are constant data, whereas the data transferred from a

register or memory location are variable data

o The MOV immediate instruction transfers a copy of the immediate data into

a register or a memory location

Page 35: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

35

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o Figure shows the operation of a MOV EAX,13456H instruction

o This instruction copies the 13456H from the instruction, located in the

memory immediately following the hexadecimal opcode, into register EAX

o As with the register addressing MOV instruction, the source data overwrites the destination data

Page 36: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

36

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o Immediate addressing transfers the source, an immediate byte, word, doubleword, or quadword of data, into the destination register or memory location

o Example: The MOV AL, 22H instruction copies a byte-sized 22H into register AL.

22H ALAL, 22H

Page 37: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

37

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o In the 80386 and above, a doubleword of immediate data can be transferred into a register or memory location

o Example: The MOV EBX, 12345678H instruction copies a doubleword-sized l2345678H into the 32-bit-wide EBX register

12345678H EBXEBX, 12345678H

Page 38: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

38

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o In 64-bit operation of the Pentium 4 or Core2, only a MOV immediate instruction allows access to any location in the memory using a 64-bit linear address.

o Example: The MOV RBX, 0123456789ABCDEFH instruction copies a quadword-sized 0123456789ABCDEFH into the 64-bit-wide RBX register

0123456789ABCDEFH RBX

RBX,0123456789ABCDEFH

Page 39: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

39

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o The symbolic assembler portrays immediate data in

many ways

o The letter H appends hexadecimal data

o If hexadecimal data begin with a letter, the assembler requires that the data start with a 0

o F2 is presented as 0F2H in assembly language

F2H ALAL, 0F2H

Page 40: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

40

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o In this text, we present the immediate MOV instruction

as MOV AX,3456H not MOV AX,#3456H as some other

assemblers do

3456H AXAX, 3456H

Page 41: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

41

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o Some assemblers (though not in MASM, TASM, or this text), hexadecimal data are represented with an ’h, as in MOV AX,#’h1234 MASM (MACRO assembler) is a trademark of Microsoft Corporation

1234H AXAX, 01234H

Page 42: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

42

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o Decimal data are represented as is and require no special codes or adjustments

o Example is the 100 decimal in the MOV AL,100 instruction

100 ALAL, 100

Page 43: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

43

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o An ASCII-coded character or characters may be depicted in the immediate form if the ASCII data are enclosed in apostrophes

o Example: The MOV BH, ‘A’ instruction, which moves an ASCII-coded letter A [41H] into register BH

41H BHBH, ‘A’

Page 44: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

44

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o Binary data are represented if the binary number is followed by the letter B, or, in some assemblers, the letter Y

o Example: The MOV EAX, 100B instruction, which moves an the binary number 100 into register EAX

100B EAXEAX, 100B

Page 45: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

45

Data Addressing Modes: 2. Immediate Addressing (cont’d)

Examples of

immediate

addressing

using the MOV instruction

The ASCII characters

are stored as BA, so

exercise care when

using word-sized pairs

of ASCII characters.

Page 46: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

46

Data Addressing Modes: 2. Immediate Addressing (cont’d)

Examples of

immediate

addressing

using the MOV instruction

The ASCII characters

are stored as BA, so

exercise care when

using word-sized pairs

of ASCII characters.

Page 47: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

47

Data Addressing Modes: 2. Immediate Addressing (cont’d)

short assembly

language

program

that places

0000H into the

16-bit registers

AX, BX, and CX.

o This is followed by instructions that use register addressing to copy the contents of AX into registers SI, DI, and BP

Page 48: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

48

Data Addressing Modes: 2. Immediate Addressing (cont’d)

short assembly

language

program

that places

0000H into the

16-bit registers

AX, BX, and CX.

o The .MODEL TINY statement directs the assembler to assemble the program into a single code segment

o The .CODE statement or directive indicates the start of the code segmento The .STARTUP statement indicates the starting instruction in the program

Page 49: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

49

Data Addressing Modes: 2. Immediate Addressing (cont’d)

short assembly

language

program

that places

0000H into the

16-bit registers

AX, BX, and CX.

o The .EXIT statement causes the program to exit to DOo The END statement indicates the end of the program fileo This program is assembled with MASM and executed with CodeView4 (CV) to view its

execution

Page 50: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

50

Data Addressing Modes: 2. Immediate Addressing (cont’d)

short assembly

language

program

that places

0000H into the

16-bit registers

AX, BX, and CX.

o To store the program into the system use the DOS EDIT program, Windows NotePad or Programmer’s WorkBench (PWB)

o Note that a TINY program always assembles as a command (.COM) program

Page 51: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

51

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o The assembler generated the machine code and addresses, and stored the program in a file with the extension .LST.

short assembly

language

program

that places

0000H into the

16-bit registers

AX, BX, and CX.

Page 52: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

52

o Each statement in an assembly language program consists of

four parts or fields

o The leftmost field is called the label

o It is used to store a symbolic name for the memory location

that it represents

Data Addressing Modes: 2. Immediate Addressing (cont’d)

If the program is assembled and the list (.LST) file is viewed, it appears as follows:

(.LST) file

Page 53: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

53

o All labels must begin with a letter or one of the following

special characters: @, $, -, or ?

o A label may be of any length from 1 to 35 characters

o The label appears in a program to identify the name of a

memory location for storing data and for other purposes

that are explained as they appear.

Data Addressing Modes: 2. Immediate Addressing (cont’d)

If the program is assembled and the list (.LST) file is viewed, it appears as follows:

Page 54: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

54

o The next field to the right is called the opcode field

o It is designed to hold the instruction, or opcode.

o The MOV part of the move data instruction is an example of an

opcode

Data Addressing Modes: 2. Immediate Addressing (cont’d)

If the program is assembled and the list (.LST) file is viewed, it appears as follows:

Page 55: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

55

o To the right of the opcode field is the operand field, which

contains information used by the opcode

o For example, the MOV AL,BL instruction has the opcode MOV

and operands AL and B

o Note that some instructions contain between zero and three

operands

Data Addressing Modes: 2. Immediate Addressing (cont’d)

If the program is assembled and the list (.LST) file is viewed, it appears as follows:

Page 56: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o The final field, the comment field, contains a comment about

an instruction or a group of instructions.

o A comment always begins with a semicolon (;).

Data Addressing Modes: 2. Immediate Addressing (cont’d)

If the program is assembled and the list (.LST) file is viewed, it appears as follows:

56

Page 57: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

o Programs are also written using the inline assembler in some Visual C++ programs

o Example shows a function in a Visual C++ program that includes some code written with the inline assembler

Data Addressing Modes: 2. Immediate Addressing (cont’d)

o This function adds 20H to the number returned by the function

o Notice that the assembly code accesses C++ variable temp and all of the assembly code is placed in an _asm code block

57

Page 58: Communication Theory II - ECED Mansoura...Text Book/References* Textbook: The Intel Microprocessors, Architecture, Programming and Interfacing, 8th edition, Barry B. Brey, Prentice

Questions

58