Red de conocimiento informático - Conocimiento sistemático - Adición de ensamblaje

Adición de ensamblaje

Segmento de pila para pila 'stack '

st1 db 64 dup(?)

Fin de la pila

Segmento de datos

num equ 6 ; número de dígitos (preferiblemente un número par). Si es un número impar, es necesario cambiar ligeramente el programa.

msg1 db 'Ingresa el primer número (ESC para salir): ',' $ '

' msg2 db 'Ingresa el segundo número (ESC para salir): ',' $ '

msg3 db 0dh, 0ah, '¡Error! Ingrese nuevamente (ESC para salir): ',' $ '

num 1 db num dup(0); guarde el primer número

num 2 db num dup(0); El segundo número

res db 0dh, 0ah, 'El resultado es: ', ' $ '

Fin de los datos

Macro de salida abyt

Hacha de empuje

mov dl, abyt

mov ah, 02h

int 21h

Barril de explosión

endm

Segmento de código

Supongamos ss: stack, ds: data, cs: code

El proceso principal está lejos

Mover eje, datos

Mover ds, ax

Una vez más:

lea dx, msg1

mov ah, 09h

int 21h; mensaje para generar el primer número

lea bx, num1

Entrada de llamada

Salida 0dh ingresa una nueva línea

Salida 0ah

lea dx, msg2

mov ah, 09h

int 21h; solicita ingresar el segundo número

lea bx,num2

Entrada de llamada

Salida 0dh entrada nueva línea

Salida 0ah

mov si,0; clear

p>

Mover eje, 0

L2: lea bx, num 1; leer primera serie

mov al, [bx][si ]

gayal,ah

mov ah,0

lea bx,num2

add al,[bx][si]; leer serie 2

Corrección aaaBCD

Añadir aluminio, convertir en código ASCII en 30h

Película cl, al

Empresa si

lea bx, num1

mov al, [bx][si]; segunda serie

Gayal, ah

mov ah, 0

lea bx, num2

Añadir al, [bx][si]

AAA

Añadir aluminio, 30h

Canal de película

Empuje CX; el resultado se coloca en la pila, esperando la salida.

Compañía si

cmp si, número -1; bucle, leer todos los números

jb l2

Canal de películas, ah

depósito de lea dx

mov ah, 09h

int 21h

Añadir canal, 30h

Canal de salida

Mover al, 0

outl:; bucle de resultados de salida

Cx popular

Canal de salida

Cl de salida

inc al

Aluminio pulido químicamente mecánicamente, cantidad/2

salida jb

Salida: renunciar

mov ah, 4ch

int 21h

Master

Proceso de entrada acercándose;

Inicio:

Mover di, número

l1:

mov ah, 01H; poner en

int 21h

cmp al, 1bh; ESC abandona

jz abandona

Pulido químico mecánico de aluminio, 30 horas (número)? Continuar: Salida

error jb

Pulido químico mecánico aluminio, 40 horas

ja error

sub al, 30h

2 de diciembre

mov [bx][di], al; datos de depósito

cmp di, 0

ja l 1; >

Remojar en agua para suavizar

Error:; Ingrese la rama incorrecta

lea dx, msg3

mov ah, 09h

int 21h

Mover di, número

inicio jmp

Ingresar fin

Fin del código

Gerente final

¡Jaja! ¡Estoy estudiando montaje y esta es la tarea que acabo de terminar! La compilación 8086 debería ser lo que quiere el cartel original.