.model small
  var db 5
  mov ax,@data
  mov ds,ax

  mov ax,var              ;what this statement set ax
  mov dx,            ;what this statement set bx

question is what is difference b/w var and
same opertion or different
plz suggest
Posted on 2006-05-15 05:46:28 by sihotaamarpal
In this case, they are identical due to the definition of "var". However, there are cases where the square brackets do have a different effect.

mov edx, offset var      ; Set edx to a pointer to "var"
mov eax, edx            ; Copy contents of edx into eax (ie copy the pointer to "var" into eax)
mov ecx,           ; Copy contents of "var" into ecx

If this is still not clear, just tell us, and hopefully you should get a better explaination.

Posted on 2006-05-15 07:56:22 by Ossa
Generally, if the register contains a memory location, the control bus instructs the CPU that when a value is moved to that register, it has got to be redirected to the block of memory which the register points out to. but if the register is not pointing to a memory address, the value is simply kept in the register.

using the square brackets surrounding a register, assuming the register holds a memory address, copies the content of the memory address to another place or register. but if the register is not holding to an effective address or a memory block, does nothing of any significance, although you might even get a runtime error.

There are basically a few memory addressing available but you can make a very big set of addressing modes by combining these few modes.

First if you want to load an effective address of a global variable onto a register, use the keyword OFFSET. Example:

  AX , ADDR MyWord

Nevertheless, the ADDR doesnt work in some TASM compilers i guess so you have to stick with the OFFSET.

Surrounding a variable inside a pair of square brackets does NOT load it's effective address into the destination.

Example which doesnt change the value of the variable

.STACK 500h

  Word1        DW        ?

  MOV    AX , @DATA
  MOV    DS , AX
  MOV    BX , OFFSET Word1
  MOV    WORD PTR , 100

    MOV    AX , 4C00h
    INT    21h

I hope it helps
Posted on 2006-05-15 23:26:53 by XCHG