美文网首页iOS 安全攻防
汇编-----Loop指令

汇编-----Loop指令

作者: 那时J花开 | 来源:发表于2018-05-03 19:12 被阅读0次

    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]等

    相关文章

      网友评论

        本文标题:汇编-----Loop指令

        本文链接:https://www.haomeiwen.com/subject/xcllrftx.html