汇编-----Loop指令

Loop指令

Loop指令其实就是 循环 的意思

  • Loop指令需要和CX寄存器配合使用, 用于循环操作, 类似于高级语言中的for, while等
  • 使用格式:
    mov cx, 循环的次数 (当遇到Loop标号时 cx就代表循环的次数)
标号: (标明后面就是需要循环的循环体)
    循环执行的程序代码
    Loop 标号
  • Loop指令执行流程:
    步骤1. 将cx寄存器的值 - 1, cx = cx - 1;
    步骤2. 判断cx的值 ;
    • 如果不为零 就执行标号处的代码, 然后执行步骤1
    • 如果为零, 执行Loop后面的代码
    • Loop的实现其实就是判断cx > 0 然后jump到标号所在地址
    mov ax, ffffh 
    mov ds, ax       //!< 数据段段地址
    mov dx, 0h    
    mov bx, 0h       //!<  清空dx和bx 用来接收数据
    mov cx, 3h       //!< 设置循环次数为3
s: mov al, [bx]      //!< 循环取ds:[bx]中的数据, 赋值给al
    mov ah, 0h       //!< 清空ah中的数据, 用来累加的时候进位
    add dx, ax       //!< dx = ax + dx
    add bx, 1        //!< bx = bx + 1
    loop s           //!< 循环s标记下的代码

补充:
获取数据, 除了通过ds段来获取, 还可以通过其他段地址来获取:
例:mov ax, ds:[0], mov ax, cs:[0]等

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。