Red de conocimiento informático - Conocimiento sistemático - Principios y aplicaciones de programación de soluciones de microcomputadoras~

Principios y aplicaciones de programación de soluciones de microcomputadoras~

; Primero suponga que los 16 números son todos de 16 bits, es decir, dos palabras, y todos son códigos BCD comprimidos, es decir, cada número es hasta 9999

; Si es un código bcd no comprimido, el proceso es similar, puedes modificarlo tú mismo

segmento dseg

num1 dw............ .......... ......; //16 números de código BCD comprimidos

suma dw ?

suma1 dw 0 ;inicializado en 0,

dseg termina

segmento cseg

proceso principal lejos

asume cs:cseg, ds:dseg

inicio:

push ds

xor ax, ax

push ax

mov ax, dseg

mov ds, hacha

; ----------------------------------

mov cx, 15; //Ejecutar 15 Suma secundaria

mov si, 0

mov si, bx

mov ax, [si];//primero term

mov sum, ax ;Los datos en ax se colocan en dos bytes de sum, sum+1

siguiente:

add si, 2

mov al, byte ptr sum

add al, [si]

daa; ajuste BCD comprimido

mov byte ptr sum, al; poner el resultado en suma

mov al, byte ptr sum+1; //alto 8 bits

adc al, [si+1] ;agregar bits altos

daa

mov byte ptr sum+1, al

jnc loop_next ; Si se suman dos números y no hay acarreo, agregue el siguiente elemento

mov al, byte ptr sum1

adc al, 0 ;Si hay un acarreo, procéselo

daa

mov byte ptr sum1, al

jnc loop_next

mov al, byte ptr suma1+1

adc al,0

daa

mov byte ptr sum1+1, al

loop_next:

bucle siguiente

ret

final principal

cseg termina

fin inicio