2016-11-13 96 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作品,你想,但要記住失蹤計算的一部分;)