bucle en lenguaje ensamblador

En lenguajes de alto nivel, a menudo es necesario recorrer algunos arreglos o listas.Podemos usar bucles for, bucles while y bucles do-while para operaciones convenientes. En algunos problemas prácticos, las instrucciones de bucle se utilizan a menudo para resolver problemas que requieren una repetición continua.

Hay tres componentes principales en el programa del ciclo: la parte de inicialización, el cuerpo del ciclo y la parte de control del ciclo. La parte de inicialización es la configuración de inicialización. El cuerpo del ciclo es simplemente la parte del programa que debe ejecutarse repetidamente, y la parte de control del ciclo es la parte que decide si el ciclo debe continuar ejecutándose.

Por ejemplo, ejecute el ciclo realizado por el ciclo while:

  El diagrama de flujo de do-while es el siguiente:

 En lenguaje ensamblador, la CPU ejecuta la instrucción de ciclo en dos pasos, el primero es (cx)=(cx)-1, el segundo paso es juzgar si cx es 0, si cx es 0, luego finaliza el ciclo, si cx no es Si es 0, continúa con el siguiente ciclo.

Por ejemplo, usamos lenguaje ensamblador para calcular la décima potencia de 2, el código es el siguiente:

assume cs:code
code segment
   start:mov ax,2
      mov cx,10
    s:add ax,ax
      loop s
      
      mov ax,4c00h
      int 21h
code ends
end start

Al ejecutar los loop body s, cuando la situación inicial es (cx)=10, (ax)=2, al realizar un ciclo se ejecutan las operaciones (cx)=(cx)-1 y sumar ax,ax, cuando At al final del primer ciclo, (cx)=9, (ax)=4; cuando se realiza el segundo ciclo, (cx)=(cx)-1 y sumar ax, se realizan las operaciones ax, cuando se realiza el segundo ciclo En el final del ciclo, (cx)=8, (ax)=8;...Cuando se ejecuta el décimo ciclo, (cx)=(cx)-1 y se ejecutan las operaciones suma ax,ax, en este momento (cx ) =0, (ax)=1024, en este momento, el valor de cx es 0 y el ciclo termina.

Supongo que te gusta

Origin blog.csdn.net/qq_54186956/article/details/126126730
Recomendado
Clasificación