push and pop error A2070
<p>When i run the program i get a line 16 error that says error A2070, line 16 is <code>mov ax, message[si]</code>. Is it because i am moving from a register to a register? Also how could i fix this problem?
The program is a simple push and pop of a string storing each character in the stack increment the stack message, and then pop the stack to display the string backwards.</p>

<pre><code>;
.model small
.data
message db "Hello, DOS Here!",0 ; the string
nameSize = ($ - message) - 1        ;gives length of the string
.code
main proc
mov ax,@data
mov ds,ax

mov cx, nameSize        ;size of the string stored in cx
mov si, 0               ;stack index 0
Li:
    mov ax, message[si]     ;
    push ax                 ;push ax
    inc si                  ;incremting stack index
    loop Li                 ; looping through message character

mov cx, nameSize            ;Popping 
mov si, 0                   ; popping from stack

L2: 
    pop ax                  ;pop of the ax
    mov message[si], al     ;
    inc si
    loop L2

mov dx, offset message      ; displaying of string 
mov ah,9
int 21

mov ax,4c00h
int 21h
main endp
end main
</code></pre>