我的变量没有改变( mov [exm],400 )

my variables does not change ( mov [exm],400 )

我是汇编的新手,我正在尝试编写一个程序来计算完美平方根数的平方根。 当我立即移动某些东西时,我的变量不会改变, 检查屏幕截图中的变量框

我的代码:

.data
number dw ? 
result dw ?
.code
    main proc
         
        mov [number],400
        mov cx,0
        
        calc:
        mov ax,cx
        mul cx
        cmp ax,[number]
        jz save
        inc cx
        jmp calc
        
        
        
        save:
        mov [7102],cx
        
        
        
        
        
        hlt
       
    endp
    end main
         

我无意中找到了我的问题的答案,为了看到变量的变化,你必须在DS寄存器中保存你的数据段地址,为此你可以使用下面的代码!

mov AX,[DATA]  ;[DATA] means the address of data segment like &DATA in C 
mov DS,AX

注意不能直接在DS寄存器中存放数据段地址,因为DS寄存器不能直接访问内存!