2016-11-13 6 views
1

私はコードを分割しており、それぞれの部分を理解しようとしています。私は非常によくJava、C + +と多くの言語を学んだが、アセンブリは難しいので、私はここに来た。シンプルな分割コード

私はそれを知っていると思いますが、わかりません(長い時間が経過しました)。私はインターネットでチェックしましたが、何も見つかりませんでした。私は自分の知識をテストしたいので、私が持っていたコードからいくつかのことを書いたので、この分割コードでいくつかのコメントがあります。私が正しかったか間違っているか教えてください。私が間違っている場所を教えてください。

私が一般的に使用するプログラムはemu8086です。これが重要な役割を果たすかどうかは分かりません。部分的なコードだけであるため、コードの形式が正しくない可能性があります。

1)MOV DS,AX --->LEA DX,MESSAGE)はAXがDS.The "変数" は

2を言うことができます取る意味---> LEAはDX

3)MOV AH,9に負荷を意味します - - > 9 AHに

4)INT 21H --->は、ALに

5)MOV AL, N
移動Nを停止する(手段が移動した場合、私はわからない)与えます MUL AL ---> NとN.More特定のN * N

6を意味し、複数のAL)MOV SI, AX ---> AXは、SIに行く(私は良いことを覚えてこれを願って)Nを意味.That * 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 NはAX.Now AXに移行* AX.2に移行2 * N MOV CL,10 ---> 10 DIV CL 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. 手段:DX
  3. への負荷MESSAGEのアドレスは、あなたが言ったことを意味します。 MOVは移動用
  4. サブルーチンを呼び出します。この場合、
  5. 右画面see here for detailsMESSAGEを印刷します。 INC SIは、SIを1だけ増やします。
  6. SI goeasをAXに設定しますが、値はN * N - 2 * N + 1です(正しく計算する場合)。また、あなたは思いますが、計算の一部が欠落について覚えてDIV作品;)
関連する問題