Which Addressing Mode is this? MOV DX, ES:[BX+6]?

  • Thread starter Thread starter kloong
  • Start date Start date
  • Tags Tags
    Dx Mode
Click For Summary

Discussion Overview

The discussion revolves around identifying the addressing mode used in the assembly instruction MOV DX, ES:[BX+6] within the context of 8086 assembly language. Participants explore various addressing modes and their characteristics.

Discussion Character

  • Exploratory, Technical explanation, Debate/contested

Main Points Raised

  • Some participants describe the segmented model of memory in the 8086 architecture, noting that segments can overlap.
  • One participant proposes a formula for calculating addresses in the segmented model as x:y = 16*x+y.
  • Another participant lists potential addressing modes, including register addressing mode, immediate addressing mode, direct addressing mode, and register indirect mode.
  • A participant suggests that the addressing mode in question is a combination of displacement and indirect (register) addressing, providing an alternative syntax for clarity.
  • It is noted that the displacement can be either an 8-bit or 16-bit value, affecting the operand's calculation.

Areas of Agreement / Disagreement

Participants express differing views on the specific addressing mode, with no consensus reached on a single identification. Multiple interpretations and models are presented.

Contextual Notes

Participants do not fully resolve the definitions or implications of the addressing modes discussed, leaving some assumptions and details open to interpretation.

Who May Find This Useful

Individuals interested in 8086 assembly language programming, computer architecture, and memory addressing techniques may find this discussion relevant.

kloong
Messages
35
Reaction score
0
For 8086 assembly language.
 
Technology news on Phys.org
This is known as the segmented model. In this model as far as I know segments overlap every so many bytes (i think its 16 or some power of it). So basically A000:0000 and A001:0000 are not 64Kb apart but actually overlap.
 
x:y = 16*x+y

Unless my memory fails me.
 
umm.. I am thinking if it's register addressing mode, immediate addressing mode, direct addressing mode, register indirect mode or others..
 
displacement + indirect (register)

it can also be written as

mov dx,es:6[bx]

where 6 could be an 8 bit or 16 bit displacement (offset).

operand = 16 bit memory word at address [es*16 + bx + 6]
 
Last edited:
Wow. I never knew there are combined ones. Ok, thank you very much. =)
 

Similar threads

  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 7 ·
Replies
7
Views
7K
  • · Replies 5 ·
Replies
5
Views
4K
Replies
10
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
4K
Replies
8
Views
3K