Lenguaje ensamblador (¡problemas con la programación usando llamadas a subrutinas!)
Solo te diré la idea general. Es mejor hacer el resto usted mismo.
1. Utilice los punteros SI y DI para señalar el primer byte del área de datos y el área de almacenamiento respectivamente, luego la primera dirección de A2 es [SI+LENG] y de manera similar la primera dirección de SUB1 es. [DI+LENG]
Luego use MOV AX, [SI]; AGREGAR AX, [SI+LENG]; >
SUB [SI+LENG ];MOV [DI+LENG], AX y luego mueve el puntero hacia atrás ADD SI, 2 (si es una variable de byte, es 1)
2. Para convertir decimal a binario, divida por 2. Con la instrucción DIV, para variables de palabra, el cociente está en AX y el resto en DX. Los valores en DX sólo pueden ser 1 o 0. Luego use las instrucciones SHR y ROR para mover el valor de DX al registro BX. Preste atención a la cantidad de bits movidos. Cuando el valor en AX es 1 o 0, finaliza su traslado a BX.
Para mostrarlo, cada dígito del resultado debe convertirse a código ASCII.
Para convertir a octal, sólo necesitas convertir el binario convertido a código ASCII en grupos de tres dígitos de menor a mayor. O use la instrucción de cambio, simplemente cambie tres bits cada vez.