SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: albertocp89 en Domingo 15 de Enero de 2012, 18:25

Título: Bucle con el 8086
Publicado por: albertocp89 en Domingo 15 de Enero de 2012, 18:25
Hola, soy nuevo, me registro para ver si me ayudais con una duda

Estoy empezando a programar con el 8086, en una practica consistente en pasar una cadena de 0 y pasarlos a decimal

El codigo del bucle en cuestion es este

(asi estan definidas las cadenas)
cadena_binaria db 1, 0, 1, 0, 1, 0, 1, 0
vector_peso db 128, 64, 32, 16, 8, 4, 2, 1

(esta es la parte del codigo del bucle)
mov si, 0
mov cx, 8
mov bl, 0
bucle1:
mov AL, cadena_binaria[si]
mul vector_peso[si], AL
sum BL, vector_peso[si]
inc si

me da error en la linea del mul y en la del sum, alguien me podría decir por qué?
loop bucle1
mov sinsigno, BL
Título: Re:Bucle con el 8086
Publicado por: Toph en Sábado 28 de Julio de 2012, 21:05
Bueno el post es viejo, pero ya que no se respondió, puede ser que alguien mas le surja la duda asi que la contesto:

El Mul trabaja asi:

MUL (registro o memoria de 8 bits) = AL*(registro o memoria de 8 bits) ; la respuesta queda en AX

MUL (registro o memoria de 16 bits)= AX*(registro o memoria de 16 bits) ; la respuesta queda en DX:AX

por lo que solo debes poner MUL vector_peso[si] para multiplicarlo con AL

y SUM no existe en 8086, ahi puedes usar ADD o ADC asi:

ADD BL, vector_peso[si]