views:

24

answers:

1

Possible Duplicate:
Assembler mov issue

I have the next code:

mov  ax,@data
mov  ds,ax

Why I can not write just like this?

mov ds,@data

All source:

   .MODEL small
   .STACK 100h
   .DATA
   HelloMessage DB 'Hello, world',13,10,'$'
   .CODE 
   .startup
   mov  ax,@data
   mov  ds,ax
   mov  ah,9
   mov  dx,OFFSET HelloMessage
   int  21h
   mov  ah,4ch
   int  21h
   END

Thank you!

+2  A: 

You can't move directly @data in ds because you can't assign directly a segment to ds. You are allowed to move a register with the value of the segment you want to move in ds.

DaJackal
Thanks a lot, man.
Alexander.Plutov