Написание программы, позволяющей осуществлять ввод с клавиатуры двоичных чисел и их вычитание, страница 5

Дизассемблированный код программы (Turbo Debugger)

Дизассемблированный код программы (Visual C++)

Приложение на языке С++

cs:02B8 push

cs:02B9 mov

#LABA1#14

cs:02BB mov

cs:02BE push

cs:02BF call

cs:02C2 pop

#LABA1#15

cs:02C3 pop

cs:02C4 ret

b:

cs:0291 push

cs:0292 mov

cs:0294 push

cs:0295 push

cs:0296 mov

#LABA1#4

cs:0299 mov

cs:029C jmp

#LABA1#7

cs:029E mov

cs:02A0 imul

cs:02A2 mov

cs:02A4 add

cs:02A6 add

cs:02A9 mov

#LABA1#8

cs:02AB dec

#LABA1#5

cs:02AC or

cs:02AE jg

#LABA1#10

cs:02B0 mov

cs:02B2 jmp

#LABA1#11

cs:02B4 pop

cs:02B5 pop

cs:02B6 pop

cs:02B7

bp

bp, sp

ax,0005

ax

b

cx

bp

bp

bp, sp

si

di

di,[bp+4]

si,000A

#LABA1#5 (02AC)

ax, si

si

dx, di

dx, ax

dx, FFFD

di, di

si

si, si

#LABA1#7 (029E)

ax, di

#LABA1#11 (02B4)

di

si

bp

00401020   push       

00401021   mov         

00401023   sub        

00401026   push       

00401027   push       

00401028   push       

00401029   lea        

0040102C   mov        

00401031   mov        

00401036   rep stos

00401038   mov

0040103F   cmp

00401043   jle        

00401045   mov        

00401048   imul       

0040104C   mov        

0040104F   lea        

00401053   mov   

00401056   mov        

00401059   sub        

0040105C   mov        

0040105F   jmp        

00401061   mov        

00401064   pop        

00401065   pop        

00401066   pop        

00401067   mov        

00401069   pop        

0040106A   ret

ebp

ebp,esp

esp,44h

ebx

esi

edi

edi,[ebp-44h]

ecx,11h

eax,0CCCCCCCCh

dword ptr [edi]

dword ptr [ebp-4],0Ah

dword ptr [ebp-4],0

b+41h (00401061)

eax,dword ptr [ebp-4]

eax,dword ptr [ebp-4]

ecx,dword ptr [ebp+8]

edx,[ecx+eax-3]

dword ptr [ebp+8],edx

eax,dword ptr [ebp-4]

eax,1

dword ptr [ebp-4],eax

b+1Fh (0040103f)

eax,dword ptr [ebp+8]

edi

esi

ebx

esp,ebp

ebp

1:   #include <stdlib.h>

2:   #include <stdio.h>

3:   int b(int j)

4:   {

5:   int i;

6:   i = 10;

7:   while ( i > 0)

8:   {

9:   j = j + i * i - 3;

10: i --;

11: }

12: return j ;

13:   }

Дизассемблированный код программы (Visual C++)

Приложение на языке С++

00401020   push       

00401021   mov        

00401023   sub        

00401026   push       

00401027   push       

00401028   push       

00401029   lea        

0040102C   mov        

00401031   mov        

00401036   rep stos

00401038   mov

0040103F   cmp

00401043   jle        

00401045   mov        

00401048   imul       

0040104C   mov        

0040104F   lea        

00401053   mov   

00401056   mov        

00401059   sub        

0040105C   mov        

0040105F   jmp        

00401061   mov        

00401064   pop        

00401065   pop        

00401066   pop        

00401067   mov        

00401069   pop        

0040106A   ret

ebp

ebp,esp

esp,44h

ebx

esi

edi

edi,[ebp-44h]

ecx,11h

eax,0CCCCCCCCh

dword ptr [edi]

dword ptr [ebp-4],0Ah

dword ptr [ebp-4],0

b+41h (00401061)

eax,dword ptr [ebp-4]

eax,dword ptr [ebp-4]

ecx,dword ptr [ebp+8]

edx,[ecx+eax-3]

dword ptr [ebp+8],edx

eax,dword ptr [ebp-4]

eax,1

dword ptr [ebp-4],eax

b+1Fh (0040103f)

eax,dword ptr [ebp+8]

edi

esi

ebx

esp,ebp

ebp

1:   #include <stdlib.h>

2:   #include <stdio.h>

3:   int b(int j)

4:   {

5:   int i;

6:   i = 10;

7:   while ( i > 0)

8:   {

9:   j = j + i * i - 3;

10: i --;

11: }

12: return j ;

13:   }