简单的分割代码

时间:2016-11-13 18:20:21

标签: assembly x86

我有一个代码拆分,并试图理解它的每个部分。我学到了很好的java,c ++和许多语言,但是对我来说装配很困难,所以我来到这里。

我认为我知道,但我不确定(它通过了很长时间)。我在网上查了一下,但找不到任何东西。我从代码中写了一些东西,因为我想测试我的知识,所以,在这个分割代码中我有一些评论。如果我对或错,请告诉我。请告诉我我哪里错了。

我通常使用的程序是emu8086。我不知道这是否起着重要作用。代码可能格式不正确,因为它只是部分代码。

1)MOV DS,AX --->意味着AX将采用DS。“变量”可以说

2)LEA DX,MESSAGE ---> LEA表示加载到DX

3)MOV AH,9 ---->给(我不确定是否移动)9到AH

4)INT 21H --->停止

5)MOV AL, N
   将N移至AL
      MUL AL --->多个AL表示N和N.More特定的N * N

6)MOV SI, AX ---> AX进入SI(我希望这个记住它很好)。这意味着N * N进入SI?

`MOV BL, 2`    --->Give 2 to BL 
`MOV AL, N`    --->Take N and give it to AL 
`MUL BL`        --->BL * AL?if i am not doing wrong that it is 2* N 

7)SUB SI,AX ---> AX(N * N)-SI(2 * N) INC SI ---> ?出现分?

8)MOV AX,SI ---> SI转到AX.2 * N转到AX.Now AX是2 * N     MOV CL,10 ---> 10转到CL     DIV CL - > 2 * N / 10?

9)MOV CL,AH - > AH“变量”进入CL MOV DL,AL - > AL“变量”转到DL ADD DL,48 - > DL将为AL +48

1 个答案:

答案 0 :(得分:0)

  1. 表示:将Hero移动(或复制/加载)到AX(所以你说的相反)
  2. 表示:将DS的地址加载到MESSAGE
  3. 表示你说的话。 DX用于移动
  4. 调用子程序。在这种情况下,它会在屏幕see here for details
  5. 上打印MOV
  6. 右键
  7. 右键
  8. 右键。 MESSAGE表示:将INC SI增加1。
  9. SI goeas SI,但值为N * N - 2 * N + 1(如果我正确计算后的话)。 AX也可以按照您的想法运作,但请记住缺少部分计算;)
  10. 右键