Programación en lenguaje ensamblador: Se tiene un array de elementos de 100 bytes, cuya dirección principal es ARRAY. Cada elemento se decrementa en 1 (no se considera desbordamiento) y se almacena en su ubicación original.
Utilizar procesamiento en bucle.
Busque un registro (como SI) que apunte a la matriz, disminuya en uno la unidad señalada por SI y luego agregue uno a SI para apuntar a la siguiente unidad de bytes. Simplemente ejecútelo 100 veces.
El programa es el siguiente (pasó la depuración en el entorno masm5.0 y Microsoft (R) Overlay Linker versión 3.60, use la depuración para ver los resultados correctos):
segmento dseg p>
array db 10 dup(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); los datos definidos aquí se escriben aleatoriamente y el resultado debe ser 0, 1, 2, 3...
cnt equ $-array; también puedes escribir 100 directamente aquí
dseg termina
segmento cseg
asumir cs: cseg, ds :dseg
begin: mov ax, dseg
mov ds, ax
mov si, matriz de desplazamiento
mov cx, cnt
siguiente: dec byte ptr [si]
inc si
bucle siguiente
mov ax, 4c00h p>
int 21h
cseg termina
fin comienza