2016-11-13 95 views
1

我有一个代码拆分,并试图了解它的每个部分。我已经很好地学习了java,C++和很多语言,但是对我来说程序集很困难,所以我来到了这里。简单的拆分代码

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

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

1)MOV DS,AX --->意味着AX将采取DS.The “可变的” 可以说

2)LEA DX,MESSAGE ---> LEA装置负载于DX

3)MOV AH,9 - - >得到(我不知道如果移动装置)的9到AH

4)INT 21H --->停止

5)MOV AL, N
移动N到AL
MUL AL --->多,这意味着N和N.More特定的N * N的AL

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

+0

http://www.posix.nl/linuxassembly/nasmdochtml/nasmdoca.html – Ped7g

回答

0
  1. 方式:移动(或者复制/负载)AXDS(所以你说的相反)
  2. 方式:负载MESSAGE的地址到DX
  3. 意味着你在说什么。 MOV用于移动
  4. 调用子程序。在这种情况下,它会在屏幕上see here for details
  5. 右侧打印MESSAGEINC SI的意思是:将SI加1。
  6. SI goeas into AX但值为N * N - 2 * N + 1(如果我按照以下计算方法)。此外DIV作品,你想,但要记住失踪计算的一部分;)