Ayuda con las interrupciones

Juan
08 de Noviembre del 2008
¡Hola!, Tengo un problema, al poner este codigo en 8 bits funciona perfectamente pero lo intento poner en 16 bits y el ensamblador me da este error: mov es:[bx],si -> invalid operand mov es:[bx],ax -> invalid operand, ¿Alguien sabe como lo puedo poner en 16 bits de modo que funcione?:
org 100h
start:
mov ah, 0
mov al, 3
int 10h
xor ax,ax
mov es, ax
mov al, 90h
mov bl, 4h
mul bl
mov bx, ax
mov si, offset [test1]
mov es:[bx], si
add bx, 2
mov ax, cs
mov es:[bx], ax

int 90h

mov ah, 0
int 16h


int 20h

test1:
pusha
push cs
pop ds
popa
iret