Escribir un programa ensamblador

; Ingrese dos números desde el teclado para agregar: solo necesita cambiar data1, data2 y sun a add01, add02 y Sum0 respectivamente. Defina el modo de almacenamiento del programa.

.stack; definir segmento de pila

.data; definir segmento de datos

data1 db 81; p > db 81 dup(0); también puede ser db 81 dup(?)

data2 db 81

db 0

db 81 dup(0)

string1 db 'numbe1 es $'; define la cadena que se mostrará en el segmento de datos

string2 db 'numbe2 es $'

string3 db 'sum es $ '

.code; Definir segmento de código

.startup; Punto de inicio del programa, establecer DS, SS

mov dx, cadena de desplazamiento1; 9

mov ah, 09h

int 21h mov dx, offset data1; ingresa la primera cadena desde el teclado

mov ah, 0ah

int 21h

mov dl, 0ah; salto de línea

mov ah, 02h

int 21h mov dl, 0dh;

mov ah, 02h

int 21h mov dx, offset string2; use la función número 9 para llamar a la información de visualización

mov ah, 09h

int 21h mov dx, offset data2; ingresa la segunda cadena desde el teclado

mov ah, 0ah

int 21h mov dl, 0ah; ah, 02h

int 21h mov dl, 0dh; retorno de carro

mov ah, 02h

int 21h

mov dx, desplazamiento string3; use la función No. 9 Llamar a mostrar información

mov ah, 09h

int 21h llamar suma; llamar a subrutina.salir 0, regresar a la definición de subrutina DOSSUM;

mov bx,

0; suma

mov cx, 0

clc

mov si, desplazamiento datos1

mov cl, [si 1]

p>

agregar si,cx

mov di,offset data2

agregar di,cx

LOPA1:

mov ax , [si]

xchg al, ah

y ax, 0f0fh y, haga que el bit alto sea cero, incluso si elimina el bit alto, también puede usar la resta para restar. 30

mov bx, [di]

xchg bl, bh

and bl, 0fh

adc al, bl; llevar

aaa; ajustar decimal

xchg al, ah

mov palabra ptr[si], ax

dec si

dec di

dec cl

jne LOPA1

jnc ncf

mov si, offset data1

mov cl, [si 1]

inc si

mov byte ptr[si], 1

jmp prinncf: mov si, offset data1

mov cl , [si 1]

inc cl

inc si

mov byte ptr [si], 0

cmp byte ptr[si ], 0

je Z0

prin:

mov dl, byte ptr [si]

add dl, '0'

mov ah, 02h

int 21hZ0:

inc si

dec cl

jne prin

RET

SUM ENDP

; Utilice la llamada de función para mostrar información

.exit 0 ; , volver a DOS

fin del ensamblaje