转录装配线代码

时间:2014-05-09 09:44:18

标签: visual-studio assembly x86

//comment or description about function of this assembly code

    MOV A,#15    /* comment about this here */
    MOV B,#23    /*comment about this here */

//add a comment here about function of next block of code

    Loop CMP A,B    /*comment here */  
    JAE LpDone    /*comment here */
    ADD A,#101    /*comment here */
    JMP Loop    /*comment here */
    LpDone NOP    /*comment here */

任何人都可以解释这个程序的步骤以及它们的作用吗? 我试图通过逐步功能使用Visual Studio调试模式来看它,但是他们并没有完全理解他们的工作?

非常感谢您的帮助,

2 个答案:

答案 0 :(得分:0)

我认为前两条指令正在将一个直接的值转移到一个寄存器中。 下一个intruction比较寄存器中的值并设置或清除flagregister的一些标志。 下一条指令是条件跳转,如果结果高于或等于则跳转。如果它没有跳转到循环外的地址,则执行以下加法指令。最后,无条件跳转指令让我们跳回到比较指令。

答案 1 :(得分:0)

这看起来像8080或Z80组装。已经有一段时间了,因为我做了与该处理器有关的任何事情,所以我可能错了。以下是我的解释:

MOV A,#15    /* Move number 15 to register A */
MOV B,#23    /* Move number 23 to register B */

Loop CMP A,B /* Compare A with B. Loop is a label used later */  
JAE LpDone   /* If above or equal, jump to label LpDone */
ADD A,#101   /* Add number 101 to register A */
JMP Loop     /* Jump to label Loop */
LpDone NOP   /* LpDone is label. NOP is no-operation so it does nothing. */