debug status register

Post on 20-Feb-2016

48 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Debug Status Register. A Debug Status Register allows the exception 1 handler to easily determine why it was invoked. It can be invoked as a result of one of several events: 1) DR0 Breakpoint fault/trap. 2) DR1 Breakpoint fault/trap. 3) DR2 Breakpoint fault/trap. - PowerPoint PPT Presentation

TRANSCRIPT

Debug Status Register• A Debug Status Register allows the exception 1

handler to easily determine why it was invoked. • It can be invoked as a result of one of several

events:1) DR0 Breakpoint fault/trap.2) DR1 Breakpoint fault/trap.3) DR2 Breakpoint fault/trap.4) DR3 Breakpoint fault/trap.5) Single-step (TF) trap.6) Task switch trap.7) Fault due to attempted debug register access when GD = 1.

Debug Status Register

• Bi : Debug fault/trap due to breakpoint 0 -3• Four breakpoint indicator flags, B0-B3,

correspond one-to-one with the breakpoint registers in DR0-DR3.

• A flag Bi is set when the condition described by DRi, LENi, and RWi occurs.

2

Debug Status Register

• BD : Debug fault due to attempted register access when GD bit is set• This bit is set if the exception 1 handler was

invoked due to an instruction attempting to read or write to the debug registers when GD bit was set.

3

Debug Status Register

• BS : Debug trap due to single step• This bit is set if the exception 1 handler was

invoked due to the TF bit in the flag register being set

4

Debug Status Register

• BT : Debug trap due to task switch• This bit is set if the exception 1 handler was

invoked due to a task switch occurring to a task having an Intel386 DX TSS with the T bit set.

5

Test Registers

• They are used to control the testing of Translation Look-aside Buffer of Intel386 DX.

• TR6 is the command test register• TR7 is the data register which contains the data

of Translation Look-aside buffer test.

6

Programming Model

• The basic programming model consists of the following aspects:– Registers – Instruction Set– Addressing Modes– Data Types–Memory Organization– Interrupts and Exceptions

7

Instruction Set• The instruction set is divided into 9 categories

of operations:• Data Transfer• Arithmetic• Shift/Rotate• String Manipulation• Bit Manipulation• Control Transfer• High Level Language Support• Operating System Support• Processor Control

8

Instruction Set – Data Transfer

9

Instruction Set-Arithmetic

10

Instruction Set - Shift/Rotate

11

Instruction Set – String Manipulation

12

Instruction Set – Bit Manipulation

13

Instruction Set – Control Transfer

14

Instruction Set

15

Instruction Set – Operating System Support

16

Instruction Set – Processor Control

17

Instruction Set

• These instructions operate on either 0,1,2 or 4 operands

• where an operand resides in– Register– Instruction itself– Memory

• Most zero operand instructions take only one byte

18

Instruction Set• One operand instructions are generally two

bytes long• The average instruction is 3.2 bytes long• Since 80386 has a 16-byte queue, an average

of 5 instructions are prefetched.

19

Instruction Set• The use of 2 operands permits the following

types of common instruction:– Register to Register– Memory to Register– Immediate to Register– Register to Memory– Immediate to Memory

• The operands can be either 8,16 or 32 bits long

20

Programming Model

• The basic programming model consists of the following aspects:– Registers – Instruction Set– Addressing Modes– Data Types–Memory Organization– Interrupts and Exceptions

21

Addressing Modes• The Intel386 DX provides 11 addressing modes

for instructions to specify operands. • Register Operand Mode: • The operand is located in one of the 8-, 16- or 32-

bit general registers.• Example : ADD EAX,EBX

• Immediate Operand Mode:• The operand is included in the instruction as part

of the opcode.• Example : CLI,STI

22

Addressing Modes

• The remaining 9 modes provide a mechanism for specifying the effective address of an operand.

• The linear address consists of two components:• the segment base address and• an effective address.

23

Addressing Modes• The effective address is calculated by using four

address elements:• DISPLACEMENT: An 8-, or 32-bit immediate value• BASE: The contents of any general purpose register. It is

generally used by compilers to point to the start of the local variable area.

• INDEX: The contents of any general purpose register except for ESP. The index registers are used to access the elements of an array, or a string of characters.

• SCALE: The index register's value can be multiplied by a scale factor, either 1, 2, 4 or 8. Scaled index mode is especially useful for accessing arrays or structures.

24

Addressing Modes• Combinations of these 4 components make up

the 9 additional addressing modes • The effective address (EA) of an operand is

calculated according to the following formula:EA = Base Register+ (Index Register * Scaling) + Displacement.

• This calculation can be shown as follows:

25

Addressing Modes

26

Addressing Modes• Direct Mode: • The operand's offset is contained as part of the

instruction as an 8- or 32-bit displacement. • Example: INC Word PTR [500]

27

Addressing Modes• Register Indirect Mode: • A base register will contain the address of operand • Example: MOV [ECX], EDX

28

Addressing Modes• Based Mode: • A BASE register's contents is added to a

DISPLACEMENT to form the operands offset. • Example: MOV ECX, [EAX+24]

29

Addressing Modes• Index Mode: • An INDEX register's contents is added to a

DISPLACEMENT to form the operands offset. EXAMPLE: ADD EAX, TABLE[ESI]

30

Addressing Modes• Scaled Index Mode: • An INDEX register's contents is multiplied by a

scaling factor which is added to a DISPLACEMENT to form the operands offset.

• Example: IMUL EBX, TABLE[ESI*4],7

31

Addressing Modes• Based Index Mode: • The contents of a BASE register is added to the

contents of an INDEX register to form the effective address of an operand.

• Example: MOV EAX, [ESI] [EBX]

32

Addressing Modes• Based Scaled Index Mode: • The contents of an INDEX register is multiplied by

a SCALING factor and the result is added to the contents of a BASE register to obtain the operands offset.

• Example: MOV ECX, [EDX*8] [EAX]

33

Addressing Modes• Based Index Mode with Displacement:• The contents of an INDEX Register and a BASE

register's contents and a DISPLACEMENT are all summed together to form the operand offset.

• Example: ADD EDX, [ESI] [EBP+00FFFFF0H]

34

Addressing Modes• Based Scaled Index Mode with Displacement:• The contents of an INDEX register are multiplied by

a SCALING factor, the result is added to the contents of a BASE register and a DISPLACEMENT to form the operand's offset.

• EXAMPLE: MOV EAX, LOCALTABLE[EDI*4] [EBP+80]

35

Programming Model

• The basic programming model consists of the following aspects:– Registers – Instruction Format– Addressing Modes– Data types–Memory organization and segmentation– Interrupts and Exceptions

36

Data Types

• The Intel386 DX supports all of the data types commonly used in high level languages:

• Bit: A single bit quantity.• Bit Field: A group of upto 32 contiguous bits,

which spans a maximum of four bytes.

37

Data Types

• Bit String: A set of contiguous bits, on the Intel386 DX bit strings can be up to 4 gigabits long.

• Byte: A signed 8-bit quantity

38

Data Types• Unsigned Byte: An

unsigned 8-bit quantity.• Integer (Word): A

signed 16-bit quantity.• Long Integer (Double

Word): – A signed 32-bit quantity. – All operations assume a

2's complement representation.

39

Data Types

• Unsigned Integer (Word): An unsigned 16-bit quantity.

• Unsigned Long Integer (Double Word): An unsigned 32-bit quantity.

40

Data Types• Signed Quad Word: A signed 64-bit quantity.

• Unsigned Quad Word: An unsigned 64-bit quantity.

41

Data Types• Offset: A 16- or 32-bit offset only quantity

which indirectly references another memory location.

42

Data Types• Pointer: A full pointer which consists of a 16-

bit segment selector and either a 16- or 32-bit offset.

43

Data Types• Char: A byte representation of an ASCII

Alphanumeric or control character.

• String: A contiguous sequence of bytes, words or dwords. A string may contain between 1 byte and 4 GB.

44

Data Types• BCD: A byte (unpacked) representation of

decimal digits 0±9.

• Packed BCD: A byte (packed) representation of two decimal digits 0±9 storing one digit in each nibble.

45

Data Types• When 80386 DX is coupled with 387 Numeric

Coprocessor then the following common floating point types are supported.

• Floating Point: A signed 32-, 64-, or 80-bit real number representation.

46

Programming Model

• The basic programming model consists of the following aspects:– Registers – Instruction Format– Addressing Modes– Data types–Memory Organization and Segmentation– Interrupts and Exceptions

47

top related