Red de conocimiento informático - Conocimiento sistemático - Cálculo de programación en ensamblaje: S=1 2 3 ... N ≤100 número máximo de términos N y la suma correspondiente S. Muestra el resultado como un número hexadecimal en la pantalla.

Cálculo de programación en ensamblaje: S=1 2 3 ... N ≤100 número máximo de términos N y la suma correspondiente S. Muestra el resultado como un número hexadecimal en la pantalla.

El total almacena un valor que no se puede superar. Puedes intentar cambiarlo a otros números.

segmento dseg

total dw 100

bufout db 10 dup(?)

msg1 db 'N = $'

msg2 db 'S = $'

msglf db 0ah, 0dh, '$'

dseg termina

segmento cseg1

supongamos cs: cseg1, ds: dseg

inicio:

mov ax, dseg

mov ds, ax

mov bx , 1

mov hacha, 1

mov dx, total

Acumular::

cmp hacha, dx

jaDone

inc bx

añadir ax, bx

jmp acumular

Listo:

sub ax , bx

dec bx

mov di, ax; guardar temporalmente

lea dx, msg1

mov ah, 9

int 21h

mov ax, bx

lea si, bufout

llama a I16toa

lea dx, bufout

p>

mov ah, 9

int 21h

lea dx, msglf

mov ah, 9

int 21h

lea dx, msg2

mov ah, 9

int 21h

mov ax, di

lea si , bufout

llama a I16toa

lea dx, bufout

mov ah, 9

int 21h

mov ah, 4ch

int 21h

cseg1 termina

segmento cseg2

se supone cs:cseg2

I16toa proc lejos usa bx cx dx

mov bx, 10

xor cx, cx

Siguiente:

xor dx, dx

p>

div bx

o dl, 30h

push dx

inc cx

cmp hacha, 0

jnz Next

Tienda:

pop dx

mov [si], dl

inc si

almacenamiento de bucle

mov byte ptr[si], '$'

ret

I16toa endp

cseg2 termina< / p>

fin inicio