Utilice lenguaje ensamblador para implementar el siguiente programa: suma de números naturales (1+2+3+...+n). Se deben utilizar instrucciones de bucle.

@¿NORTE? El límite es 92681. El siguiente procedimiento le asigna un valor. 100000?, luego se devuelve 92681.

¿Cuando le das @N? Cuando está dentro de 92681, se genera el resultado acumulativo de números naturales.

El programa se implementa utilizando registros de 16 bits, ¿que son mucho más complicados que los registros de 32 bits? ! )

Fragmento de código

ASSUMECS:code

@NDD100000

Inicio:

PUSHCS

¿Música pop? 鐽

PUSHCS

¿Música pop? El Salvador

¿MOV? AX,0

¿MOV? DX, 0

¿MOV? SI, 0

MOV? DI, 0

¿MOV? CX, ¿alguna novedad? ¿PTR? @N

¿MOV? BX, ¿alguna novedad? ¿PTR? @N+2

@0:

¿Suplemento? ¿HACHA, SI

ADC? DX, DI

JC @Error

¿Suplemento? SI, 1

ADC? DI, 0

¿SUB? CX, 1

JNC? @0

¿SBB? BX, 0

¿JNC? @0

CALLDISPDXAX

@Salir:

¿MOV? Ah, 4CH

INT? 21H

@ERR:

¿SUB? SI, 1

SBB? DI, 0

¿MOV? AX,SI

MOV? DX, DI

CALLDISPDXAX

JMP? @Salir

DISPDXAXPROCNEAR

;? Coloque los números sin signo de 32 bits que se mostrarán en dx y ax.

Empujar Hacha

Empujar

PUSHCX

PUSHDX

Empujar

PUSHDI

Empujar

PUSHF

MOV? ¿palabra? ¿PTR? [Y],AX

¿MOV? ¿palabra? ¿PTR? [Y+2], DX

¿MOV? ¿Hacha, palabra? ¿PTR? [Y]

¿MOV? DX, PALABRA? ¿PTR? [Y+2]

¿MOV? BX, ¿alguna novedad? ¿PTR? [Z]

¿MOV? CX, ¿alguna novedad? ¿PTR? [Z+2]

¿MOV? ¿palabra? ¿PTR? n, 0

MM0:INC? ¿palabra? ¿PTR? ¿SUB ordinario

? Hacha, BX

SBB? CX DX

JNC? MM0

¿Diciembre? ¿palabra? ¿PTR? Ordinario

¿Suplementario? Hacha, BX

ADC? CX DX

¿MOV? ¿palabra? PTR[Y],AX

MOV? ¿palabra? PTR[Y+2], DX

MM1: ¿LEA? DI, CC

¿Suplemento? Di, 9 años

M2:

¿MOV? ¿Hacha, palabra? ¿PTR? [Y]

¿MOV? DX, PALABRA? ¿PTR? [Y+2]

¿MOV? BX, 10000

DIV? Bronx

Empuje de hacha

PUSHDX

¿Pop? Avanzado (abreviatura de deluxe)

¿MOV? CX, 4 años

¿MOV? AX, DX

M3:MOV? DX, 0

¿MOV? BX, 10

DIV? Bronx

¿Suplementario? DL, 30H

MOV? [DI], DL

¿Diciembre? Departamento de Inteligencia de Defensa

LOOPM3

¿Música pop? ¿Cortar

MOV? CX, 1

M4:MOV? DX, 0

¿MOV? BX, 10

DIV? Bronx

¿Suplementario? DL, 30H

MOV? [DI], DL

¿Diciembre? Inteligencia del Departamento de Defensa

Bucle M4

¿MOV? ¿Hacha, palabra? ¿PTR? ¿MOV ordinario

? CX, 5 años

M5:MOV? DX, 0

¿MOV? BX, 10

DIV? Bronx

¿Suplementario? DL, 30H

MOV? [DI], DL

¿Diciembre? Inteligencia de Defensa

LOOPM5

Lea. DX

¿MOV? Ah, 9

INT? 21H

¿MOV? CX, 9 años

Lea. SI, CC

M6:

¿MOV? Aluminio [Silicio]

¿CMP? AL, '0'

JNE? M7

¿MOV? ¿byte? ¿PTR? [Si], 32 años

¿INC? Sistema Internacional de Medida

LOOPM6

M7:

Lea.

DX, CC

¿MOV? Ah, 9

INT? 21H

POPF

¿Música pop? Pares de bases

¿Pop? Departamento de Inteligencia de Defensa

¿Popular? Sistema Internacional de Medida

¿Pop? Avanzado (abreviatura de deluxe)

¿Música pop? CX

¿Música pop? Bronx

¿Música pop? Cortar

Remojar en agua para suavizar

¿YDD?

¿CCDB10? DUP('?'),10,13,'$'

LFCRDB10,13,' $ '

ZDD100000

NDW0

DISPDXAXENDP

Terminal común

¿Fin? Inicio