我有一个代码拆分,并试图理解它的每个部分。我学到了很好的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
答案 0 :(得分:0)
Hero
移动(或复制/加载)到AX
(所以你说的相反)DS
的地址加载到MESSAGE
DX
用于移动MOV
MESSAGE
表示:将INC SI
增加1。SI
goeas SI
,但值为N * N - 2 * N + 1(如果我正确计算后的话)。 AX
也可以按照您的想法运作,但请记住缺少部分计算;)