x86中的JL指令是否受cmp和它之间的其他指令影响?

米娜·阿什拉夫(Mina Ashraf)

我正在尝试实现两个缩进循环,如下面的屏幕截图所示。调试器显示r13等于0且r14等于9。为什么然后它跳过JL指令并直接转到mov r13,0指令

我怀疑中间的inc指令对此负责,但是这没有任何意义,因为该标志的位仍然保持不变

pop r10 ; contains the size of the array 
    pop rax ; address of the array in memory 
    mov r11, rax ; copy of the address from rax now

    mov r12, 0 ; int i 
    mov r13, 0 ; int j 

    dec r10

    i_loop: 
        mov r14, r10
        sub r14, r12
        j_loop:


            mov r8, [r11 + r13 * 8]
            mov r9, [r11 + r13 * 8 + 8]

            cmp r8, r9  
            jg swap

            back: 
            inc r13
            cmp r13, r14

            jl j_loop


        mov r13, 0
        inc r12
        cmp r12, r10
        jl i_loop


埃里克·艾德(Erik Eidt)

标志(也称为条件代码)是一组1位寄存器。cmp指令集。但是,除了许多指令之外,cmp还设置了条件代码,而还有许多指令则没有。因此,每当在比较和分支之间有其他指令时,都应检查指令集引用以查看该指令是否还设置了条件代码。您还应该能够在调试器中检查条件代码(1位寄存器)。您会在看到正确设置它们cmp,然后在重新设置它们inc


另请参阅https://stackoverflow.com/a/3925620/471129 re:inc指令

https://stackoverflow.com/a/5210401/471129 re:在gdb中看到标志-使用info reg eflagslayout reg

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在指令定义中的其他指令内添加指令

来自分类Dev

在cmp指令x86中进位标志

来自分类Dev

AngularJS Transcluded 指令的范围从其他指令中捕获

来自分类Dev

到达其他指令的指令范围

来自分类Dev

JS和JL x86指令之间的区别

来自分类Dev

AngularJS指令-来自$ scope的模板和其他指令

来自分类Dev

替换汇编指令会更改其他指令

来自分类Dev

如何在Angular的客户指令模板中包含其他指令?

来自分类Dev

Angular - 将指令注入到同一元素的其他指令中

来自分类Dev

在DirExistsWarning和其他指令中使用脚本常量

来自分类Dev

如何使其他指令在uib-tab元素中起作用

来自分类Dev

x86中的VMCALL指令是否保存来宾CPU状态

来自分类Dev

x86体系结构中的指令解码

来自分类Dev

解决x86中mov指令的问题

来自分类Dev

胡子和其他指令的AngularDart指令表达式语法

来自分类Dev

在指令模板中使用ng-click调用其他指令

来自分类Dev

为什么ng-href指令需要{{}}而其他指令则不需要?

来自分类Dev

自定义验证程序指令与其他指令结合触发多次

来自分类Dev

一个指令与其他指令在运行时进行通信

来自分类Dev

在指令模板中使用ng-click调用其他指令

来自分类Dev

可以使用其他指令执行“ PUSH”指令的操作吗?

来自分类Dev

AngularJS指令切换菜单阻止其他指令的默认设置

来自分类Dev

在运行时将一个指令与其他指令进行通信

来自分类Dev

为什么ng-href指令需要{{}}而其他指令则不需要?

来自分类Dev

AngularJS-我的指令之一无效,其他指令有效吗?

来自分类Dev

角度消息嵌套指令,如何使其与其他指令配合使用

来自分类Dev

x86 Assembly,堆栈推送指令

来自分类Dev

x86 ADD指令的正确编码

来自分类Dev

x86 Assembly,堆栈推入指令

Related 相关文章

  1. 1

    在指令定义中的其他指令内添加指令

  2. 2

    在cmp指令x86中进位标志

  3. 3

    AngularJS Transcluded 指令的范围从其他指令中捕获

  4. 4

    到达其他指令的指令范围

  5. 5

    JS和JL x86指令之间的区别

  6. 6

    AngularJS指令-来自$ scope的模板和其他指令

  7. 7

    替换汇编指令会更改其他指令

  8. 8

    如何在Angular的客户指令模板中包含其他指令?

  9. 9

    Angular - 将指令注入到同一元素的其他指令中

  10. 10

    在DirExistsWarning和其他指令中使用脚本常量

  11. 11

    如何使其他指令在uib-tab元素中起作用

  12. 12

    x86中的VMCALL指令是否保存来宾CPU状态

  13. 13

    x86体系结构中的指令解码

  14. 14

    解决x86中mov指令的问题

  15. 15

    胡子和其他指令的AngularDart指令表达式语法

  16. 16

    在指令模板中使用ng-click调用其他指令

  17. 17

    为什么ng-href指令需要{{}}而其他指令则不需要?

  18. 18

    自定义验证程序指令与其他指令结合触发多次

  19. 19

    一个指令与其他指令在运行时进行通信

  20. 20

    在指令模板中使用ng-click调用其他指令

  21. 21

    可以使用其他指令执行“ PUSH”指令的操作吗?

  22. 22

    AngularJS指令切换菜单阻止其他指令的默认设置

  23. 23

    在运行时将一个指令与其他指令进行通信

  24. 24

    为什么ng-href指令需要{{}}而其他指令则不需要?

  25. 25

    AngularJS-我的指令之一无效,其他指令有效吗?

  26. 26

    角度消息嵌套指令,如何使其与其他指令配合使用

  27. 27

    x86 Assembly,堆栈推送指令

  28. 28

    x86 ADD指令的正确编码

  29. 29

    x86 Assembly,堆栈推入指令

热门标签

归档