SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado 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
-
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]