Red de conocimiento informático - Consumibles informáticos - Los expertos ayudan a redactar el ensamblaje.

Los expertos ayudan a redactar el ensamblaje.

Si es demasiado vago para completar los 100 números 1, 2, 3, 4,..., 100. ¿Agregue un espacio antes del número y luego cambie la penúltima línea LODE ENDS a CODE ENDS, su programa? compilará, pero te diré que todavía hay algún problema con tu programa. El BUFF que definiste es una unidad de bytes de 1 a ~100, pero cuando lo sumas, el número tomado por [Si] son ​​dos unidades de palabras. Entonces, el número original ya no es de 1 a ~100, por lo que debe cambiarlo y definir BUFF como DW. Cuando recupera el número más tarde, no es INC SI sino ADD SI 2 obtiene datos del tamaño de una palabra. Pero quiero decir que el problema principal es que su programa no necesita escribir tanto. . .

Para pasar realmente del 1 al 100, simplemente:

MOV CX, 100

Siguiente:

Sumar suma, CX; Definir suma = 0

Siguiente ciclo

Programa completo y salida:

;Función de implementación del programa: acumula del 1 al 100, el resultado del cálculo es [y] son guardados como unidades.

Segmento de datos

Suma DW 0

Fin de los datos

Segmento de pila

Ingrese el segmento de pila aquí; código.

Lado de la pila

Segmento de código

Supongamos CS: código, DS: datos, SS: pila

Inicio:

MOV AX, DATA

MOV DS, AX

MOV CX, 100

Siguiente:

Agregar SUM, CX

Siguiente ciclo

Visualización de llamada

MOV, 4CH

INT 21H

El proceso de visualización está cerrado

;El siguiente fragmento de código implementa la salida de números enteros positivos.

****************************************** * *******

MOV AX, SUM

MOV BX, 10

Continuar:

CWD

División BX

Push DX

Compañía CX

Valor máximo de CMP, 0

JNZ continúa

Siguiente 1:

DX popular

Y DX, 0FFH

Agregar DL, 30H

MOV, 02

INT 21H

Bucle SIGUIENTE1

;****************************** * ************************

Remojar en agua para ablandar

Mostrar ENDP

Fin del código

Fin del inicio