News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

Sorting strings

Started by RuiLoureiro, May 29, 2014, 06:15:48 AM

Previous topic - Next topic

RuiLoureiro

Thanks all

          No Gunther, this one,
          if you dont mind.

A_stricmp does this:

_string01X       db "abC",0
_string01Y       db "aBc",0

00000061                === new byte
00000061
SeeHexa AL AH --X

00000062                === new byte
00000042
SeeHexa AL AH --X

00000042
00000042                <---- here they are EQUAL
SeeHexa AL AH --Y

00000062                ----> BUT DO THIS
00000042
SeeHexa AL AH --Z

00000001                ----> BUT DO THIS
00000019
SeeHexa AL AH --W

00000043                ----> NOW new byte !
00000063           
SeeHexa AL AH --X

00000063                === new byte
00000063                <---- here they are EQUAL

SeeHexa AL AH --Y

00000063                ----> BUT DO THIS
00000063

SeeHexa AL AH --Z

00000002                ----> BUT DO THIS
00000019

SeeHexa AL AH --W

00000000                ----> BUT DO THIS
00000000

SeeHexa AL AH --X
X is EQUAL Y
ShowResultXY
 

Gunther

Hi Rui,

okay, I'll post the result this evening.

Gunther
You have to know the facts before you can distort them.

RuiLoureiro

Quote from: Gunther on June 17, 2014, 07:10:00 PM
Hi Rui,

okay, I'll post the result this evening.

Gunther
oK Gunther, these are my results:

Quote
Intel(R) Pentium(R) 4 CPU 3.40GHz (SSE3)
***** Time table *****

29 milliseconds, C_stricmp -_string02X EQUAL   _string02Y-16 bytes
32 milliseconds, C_stricmp -_string03X GREATER _string03Y-16 bytes
32 milliseconds, C_stricmp -_string01X LESS    _string01Y-16 bytes
63 milliseconds, B_stricmp -_string02X EQUAL   _string02Y-16 bytes
65 milliseconds, B_stricmp -_string03X GREATER _string03Y-16 bytes
68 milliseconds, B_stricmp -_string01X LESS    _string01Y-16 bytes
71 milliseconds, A_stricmp -_string02X EQUAL   _string02Y-16 bytes
73 milliseconds, A_stricmp -_string03X GREATER _string03Y-16 bytes
84 milliseconds, A_stricmp -_string01X LESS    _string01Y-16 bytes
********** END 2 **********

Gunther

Hi Rui,

please excuse the delay, but it's exam time here and I've a lot to do. Here the results:

X is less than Y
X is EQUAL Y
X is greater than Y

X is less than Y
X is EQUAL Y
X is greater than Y

X is less than Y
X is EQUAL Y
X is greater than Y

28 milliseconds, A_stricmp, _string01X, _string01Y
23 milliseconds, A_stricmp, _string02X, _string02Y
23 milliseconds, A_stricmp, _string03X, _string03Y
18 milliseconds, B_stricmp, _string01X, _string01Y
16 milliseconds, B_stricmp, _string02X, _string02Y
16 milliseconds, B_stricmp, _string03X, _string03Y
18 milliseconds, C_stricmp, _string01X, _string01Y
16 milliseconds, C_stricmp, _string02X, _string02Y
16 milliseconds, C_stricmp, _string03X, _string03Y
*** Press any key to get the time table ***

------------------------------------------
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (SSE4)
------------------------------------------
***** Time table *****

16 milliseconds, C_stricmp -_string03X GREATER _string03Y-16 bytes
16 milliseconds, C_stricmp -_string02X EQUAL   _string02Y-16 bytes
16 milliseconds, B_stricmp -_string03X GREATER _string03Y-16 bytes
16 milliseconds, B_stricmp -_string02X EQUAL   _string02Y-16 bytes
18 milliseconds, C_stricmp -_string01X LESS    _string01Y-16 bytes
18 milliseconds, B_stricmp -_string01X LESS    _string01Y-16 bytes
23 milliseconds, A_stricmp -_string03X GREATER _string03Y-16 bytes
23 milliseconds, A_stricmp -_string02X EQUAL   _string02Y-16 bytes
28 milliseconds, A_stricmp -_string01X LESS    _string01Y-16 bytes
********** END 2 **********


Gunther
You have to know the facts before you can distort them.

RuiLoureiro


RuiLoureiro

Hi Gunther,
            Could you run this .exe
            if you dont mind ?
            I am testing algos to copy
            strings.
            Thank you  :t

This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is
one that we want to copy to ***This string here is one that we want to copy to**
This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is
one that we want to copy to ***This string here is one that we want to copy to**
This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is
one that we want to copy to ***This string here is one that we want to copy to**

This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is
one that we want to copy to ***This string here is one that we want to copy to**

This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is
one that we want to copy to ***This string here is one that we want to copy to**

9 milliseconds, MOVEAtoB_X, 10 bytes - copy lenght DWORDS
9 milliseconds, MOVEAtoB_Y, 10 bytes - copy lenght MOVZX
9 milliseconds, MOVEAtoB_Z, 10 bytes - copy length BYTES
9 milliseconds, MOVEAtoB_W, 10 bytes - copy null terminated
71 milliseconds, MOVEAtoB_X, 50 bytes - copy lenght DWORDS
43 milliseconds, MOVEAtoB_Y, 50 bytes - copy lenght MOVZX
50 milliseconds, MOVEAtoB_Z, 50 bytes - copy length BYTES
55 milliseconds, MOVEAtoB_W, 50 bytes - copy null terminated
100 milliseconds, MOVEAtoB_X, 100 bytes - copy lenght DWORDS
70 milliseconds, MOVEAtoB_Y, 100 bytes - copy lenght MOVZX
79 milliseconds, MOVEAtoB_Z, 100 bytes - copy length BYTES
90 milliseconds, MOVEAtoB_W, 100 bytes - copy null terminated
206 milliseconds, MOVEAtoB_X, 200 bytes - copy lenght DWORDS
134 milliseconds, MOVEAtoB_Y, 200 bytes - copy lenght MOVZX
149 milliseconds, MOVEAtoB_Z, 200 bytes - copy length BYTES
167 milliseconds, MOVEAtoB_W, 200 bytes - copy null terminated
15 milliseconds, MOVEAtoB_YY, 10 bytes - copy lenght MOVZX
56 milliseconds, MOVEAtoB_YY, 50 bytes - copy lenght MOVZX
101 milliseconds, MOVEAtoB_YY, 100 bytes - copy lenght MOVZX
208 milliseconds, MOVEAtoB_YY, 200 bytes - copy lenght MOVZX
*** Press any key to get the time table ***



Quote
-----------------------------------------------------
Intel(R) Pentium(R) 4 CPU 3.40GHz (SSE3)
-----------------------------------------------------
***** Time table *****

  9 milliseconds, MOVEAtoB_W - 10 bytes- copy null terminated
  9 milliseconds, MOVEAtoB_Z - 10 bytes- copy length BYTES
  9 milliseconds, MOVEAtoB_Y - 10 bytes- copy lenght MOVZX
  9 milliseconds, MOVEAtoB_X - 10 bytes- copy lenght DWORDS
15 milliseconds, MOVEAtoB_YY- 10  bytes- copy lenght MOVZX

43 milliseconds, MOVEAtoB_Y - 50 bytes- copy lenght MOVZX
50 milliseconds, MOVEAtoB_Z - 50 bytes- copy length BYTES
55 milliseconds, MOVEAtoB_W - 50 bytes- copy null terminated
56 milliseconds, MOVEAtoB_YY- 50  bytes- copy lenght MOVZX
70 milliseconds, MOVEAtoB_Y - 100 bytes- copy lenght MOVZX
71 milliseconds, MOVEAtoB_X - 50 bytes- copy lenght DWORDS

79 milliseconds, MOVEAtoB_Z - 100 bytes- copy length BYTES
90 milliseconds, MOVEAtoB_W - 100 bytes- copy null terminated
100 milliseconds, MOVEAtoB_X - 100 bytes- copy lenght DWORDS
101 milliseconds, MOVEAtoB_YY- 100 bytes- copy lenght MOVZX

134 milliseconds, MOVEAtoB_Y - 200 bytes- copy lenght MOVZX
149 milliseconds, MOVEAtoB_Z - 200 bytes- copy length BYTES
167 milliseconds, MOVEAtoB_W - 200 bytes- copy null terminated
206 milliseconds, MOVEAtoB_X - 200 bytes- copy lenght DWORDS
208 milliseconds, MOVEAtoB_YY- 200 bytes- copy lenght MOVZX
********** END 2 **********

Gunther

Quote from: RuiLoureiro on June 21, 2014, 07:40:24 AM
Hi Gunther,
            Could you run this .exe
            if you dont mind ?

Why not? Here's the result:

This string here is one that we want to copy to ***This string here is one that
we want to copy to**This string here is one that we want to copy to ***This stri
ng here is one that we want to copy to**
This string here is one that we want to copy to ***This string here is one that
we want to copy to**This string here is one that we want to copy to ***This stri
ng here is one that we want to copy to**
This string here is one that we want to copy to ***This string here is one that
we want to copy to**This string here is one that we want to copy to ***This stri
ng here is one that we want to copy to**

This string here is one that we want to copy to ***This string here is one that
we want to copy to**This string here is one that we want to copy to ***This stri
ng here is one that we want to copy to**

This string here is one that we want to copy to ***This string here is one that
we want to copy to**This string here is one that we want to copy to ***This stri
ng here is one that we want to copy to**

5 milliseconds, MOVEAtoB_X, 10 bytes - copy lenght DWORDS
6 milliseconds, MOVEAtoB_Y, 10 bytes - copy lenght MOVZX
4 milliseconds, MOVEAtoB_Z, 10 bytes - copy length BYTES
5 milliseconds, MOVEAtoB_W, 10 bytes - copy null terminated
29 milliseconds, MOVEAtoB_X, 50 bytes - copy lenght DWORDS
39 milliseconds, MOVEAtoB_Y, 50 bytes - copy lenght MOVZX
29 milliseconds, MOVEAtoB_Z, 50 bytes - copy length BYTES
32 milliseconds, MOVEAtoB_W, 50 bytes - copy null terminated
55 milliseconds, MOVEAtoB_X, 100 bytes - copy lenght DWORDS
66 milliseconds, MOVEAtoB_Y, 100 bytes - copy lenght MOVZX
55 milliseconds, MOVEAtoB_Z, 100 bytes - copy length BYTES
57 milliseconds, MOVEAtoB_W, 100 bytes - copy null terminated
106 milliseconds, MOVEAtoB_X, 200 bytes - copy lenght DWORDS
116 milliseconds, MOVEAtoB_Y, 200 bytes - copy lenght MOVZX
106 milliseconds, MOVEAtoB_Z, 200 bytes - copy length BYTES
109 milliseconds, MOVEAtoB_W, 200 bytes - copy null terminated
5 milliseconds, MOVEAtoB_YY, 10 bytes - copy lenght MOVZX
31 milliseconds, MOVEAtoB_YY, 50 bytes - copy lenght MOVZX
57 milliseconds, MOVEAtoB_YY, 100 bytes - copy lenght MOVZX
109 milliseconds, MOVEAtoB_YY, 200 bytes - copy lenght MOVZX
*** Press any key to get the time table ***

------------------------------------------
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (SSE4)
------------------------------------------
***** Time table *****

4 milliseconds, MOVEAtoB_Z - 10 bytes- copy length BYTES
5 milliseconds, MOVEAtoB_W - 10 bytes- copy null terminated
5 milliseconds, MOVEAtoB_YY- 10  bytes- copy lenght MOVZX
5 milliseconds, MOVEAtoB_X - 10 bytes- copy lenght DWORDS
6 milliseconds, MOVEAtoB_Y - 10 bytes- copy lenght MOVZX
29 milliseconds, MOVEAtoB_Z - 50 bytes- copy length BYTES
29 milliseconds, MOVEAtoB_X - 50 bytes- copy lenght DWORDS
31 milliseconds, MOVEAtoB_YY- 50  bytes- copy lenght MOVZX
32 milliseconds, MOVEAtoB_W - 50 bytes- copy null terminated
39 milliseconds, MOVEAtoB_Y - 50 bytes- copy lenght MOVZX
55 milliseconds, MOVEAtoB_Z - 100 bytes- copy length BYTES
55 milliseconds, MOVEAtoB_X - 100 bytes- copy lenght DWORDS
57 milliseconds, MOVEAtoB_YY- 100 bytes- copy lenght MOVZX
57 milliseconds, MOVEAtoB_W - 100 bytes- copy null terminated
66 milliseconds, MOVEAtoB_Y - 100 bytes- copy lenght MOVZX
106 milliseconds, MOVEAtoB_Z - 200 bytes- copy length BYTES
106 milliseconds, MOVEAtoB_X - 200 bytes- copy lenght DWORDS
109 milliseconds, MOVEAtoB_YY- 200 bytes- copy lenght MOVZX
109 milliseconds, MOVEAtoB_W - 200 bytes- copy null terminated
116 milliseconds, MOVEAtoB_Y - 200 bytes- copy lenght MOVZX
********** END 2 **********


Gunther
You have to know the facts before you can distort them.

RuiLoureiro

#37
Gunther,
          Thanks  :t
          Could you run this new to copy strings,
          please ?

          EDIT: my results seems to mean that working with
                    strings with length is better than null terminated.
                    (far better!). My strings have length and null terminator also.
                    So when i copy they have the null terminator.


This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is
one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_X10= This strin$$$
MOVEAtoB_Y10= This strin$$$
MOVEAtoB_Z10= This strin$$$
MOVEAtoB_W10= This strin$$$

MOVEAtoB_X50= This string here is one that we want to copy to **$$$
MOVEAtoB_Y50= This string here is one that we want to copy to **$$$
MOVEAtoB_Z50= This string here is one that we want to copy to **$$$
MOVEAtoB_W50= This string here is one that we want to copy to **$$$

MOVEAtoB_X100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Y100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Z100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_W100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_X200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This
string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Y200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This
string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Z200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This
string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_W200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This
string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_YY10= This strin$$$
MOVEAtoB_YY50= This string here is one that we want to copy to **$$$
MOVEAtoB_YY100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_YY200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This
string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_XX10= This strin$$$
MOVEAtoB_XX50= This string here is one that we want to copy to **$$$
MOVEAtoB_XX100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_XX200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This
string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_XZ10= This strin$$$
MOVEAtoB_XZ50= This string here is one that we want to copy to **$$$
MOVEAtoB_XZ100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_XZ200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This
string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

szCopy10MASM= This strin$$$
szCopy50MASM= This string here is one that we want to copy to **$$$
szCopy100MASM= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
szCopy200MASM= This string here is one that we want to copy to ***This string here is one that we want to copy to**This
string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

11 milliseconds, MOVEAtoB_X, 13 bytes - copy lenght DWORDS
12 milliseconds, MOVEAtoB_Y, 13 bytes - copy lenght MOVZX
12 milliseconds, MOVEAtoB_Z, 13 bytes - copy length BYTES
12 milliseconds, MOVEAtoB_W, 13 bytes - copy null terminated
68 milliseconds, MOVEAtoB_X, 53 bytes - copy lenght DWORDS
45 milliseconds, MOVEAtoB_Y, 53 bytes - copy lenght MOVZX
49 milliseconds, MOVEAtoB_Z, 53 bytes - copy length BYTES
55 milliseconds, MOVEAtoB_W, 53 bytes - copy null terminated
97 milliseconds, MOVEAtoB_X, 103 bytes - copy lenght DWORDS
73 milliseconds, MOVEAtoB_Y, 103 bytes - copy lenght MOVZX
97 milliseconds, MOVEAtoB_Z, 103 bytes - copy length BYTES
92 milliseconds, MOVEAtoB_W, 103 bytes - copy null terminated
217 milliseconds, MOVEAtoB_X, 203 bytes - copy lenght DWORDS
136 milliseconds, MOVEAtoB_Y, 203 bytes - copy lenght MOVZX
146 milliseconds, MOVEAtoB_Z, 203 bytes - copy length BYTES
175 milliseconds, MOVEAtoB_W, 203 bytes - copy null terminated
13 milliseconds, MOVEAtoB_YY, 13 bytes - copy lenght MOVZX
59 milliseconds, MOVEAtoB_YY, 53 bytes - copy lenght MOVZX
104 milliseconds, MOVEAtoB_YY, 103 bytes - copy lenght MOVZX
197 milliseconds, MOVEAtoB_YY, 203 bytes - copy lenght MOVZX
5 milliseconds, MOVEAtoB_XX, 13 bytes - copy lenght DWORDS+MOVZX
27 milliseconds, MOVEAtoB_XX, 53 bytes - copy lenght DWORDS+MOVZX
51 milliseconds, MOVEAtoB_XX, 103 bytes - copy lenght DWORDS+MOVZX
136 milliseconds, MOVEAtoB_XX, 203 bytes - copy lenght DWORDS+MOVZX
5 milliseconds, MOVEAtoB_XZ, 13 bytes - copy lenght DWORDS+MOVZX
19 milliseconds, MOVEAtoB_XZ, 53 bytes - copy lenght DWORDS+MOVZX
30 milliseconds, MOVEAtoB_XZ, 103 bytes - copy lenght DWORDS+MOVZX
45 milliseconds, MOVEAtoB_XZ, 203 bytes - copy lenght DWORDS+MOVZX
13 milliseconds, szCopy10MASM, 13 bytes - copy lenght DWORDS+MOVZX
61 milliseconds, szCopy50MASM, 53 bytes - copy lenght DWORDS+MOVZX
105 milliseconds, szCopy100MASM, 103 bytes - copy lenght DWORDS+MOVZX
197 milliseconds, szCopy200MASM, 203 bytes - copy lenght DWORDS+MOVZX
*** Press any key to get the time table ***


From  Gunther:
Quote
-------------------------------------------------------------
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (SSE4)
-------------------------------------------------------------
***** Time table *****

  1 milliseconds, MOVEAtoB_XX-   13 bytes- copy lenght DWORDS+MOVZX
  2 milliseconds, MOVEAtoB_XZ-   13 bytes- copy lenght DWORDS+MOVZX
  5 milliseconds, MOVEAtoB_Z -   13 bytes- copy length BYTES
  5 milliseconds, MOVEAtoB_X -   13 bytes- copy lenght DWORDS
  6 milliseconds, MOVEAtoB_Y -   13 bytes- copy lenght MOVZX
  6 milliseconds, MOVEAtoB_XZ-   53 bytes- copy lenght DWORDS+MOVZX
  9 milliseconds, szCopy10MASM - 13 bytes- copy null terminated
  9 milliseconds, MOVEAtoB_YY-   13 bytes- copy lenght MOVZX
  9 milliseconds, MOVEAtoB_W -   13 bytes- copy null terminated
 
10 milliseconds, MOVEAtoB_XX-   53 bytes- copy lenght DWORDS+MOVZX
14 milliseconds, MOVEAtoB_XZ103 bytes- copy lenght DWORDS+MOVZX
20 milliseconds, MOVEAtoB_XX-  103 bytes- copy lenght DWORDS+MOVZX
30 milliseconds, MOVEAtoB_Z -   53 bytes- copy length BYTES
30 milliseconds, MOVEAtoB_X -   53 bytes- copy lenght DWORDS
31 milliseconds, MOVEAtoB_Y -   53 bytes- copy lenght MOVZX
32 milliseconds, szCopy50MASM - 53 bytes- copy null terminated
32 milliseconds, MOVEAtoB_XZ203 bytes- copy lenght DWORDS+MOVZX
39 milliseconds, MOVEAtoB_XX-  203 bytes- copy lenght DWORDS+MOVZX
42 milliseconds, MOVEAtoB_W -   53 bytes- copy null terminated
44 milliseconds, MOVEAtoB_YY-   53 bytes- copy lenght MOVZX

56 milliseconds, MOVEAtoB_Z -  103 bytes- copy length BYTES
56 milliseconds, MOVEAtoB_X -  103 bytes- copy lenght DWORDS
59 milliseconds, MOVEAtoB_Y -  103 bytes- copy lenght MOVZX
67 milliseconds, MOVEAtoB_YY-  103 bytes- copy lenght MOVZX
67 milliseconds, szCopy100MASM-103 bytes- copy null terminated
68 milliseconds, MOVEAtoB_W -  103 bytes- copy null terminated

108 milliseconds, MOVEAtoB_Z -  203 bytes- copy length BYTES
108 milliseconds, MOVEAtoB_X -  203 bytes- copy lenght DWORDS
109 milliseconds, MOVEAtoB_Y -  203 bytes- copy lenght MOVZX
110 milliseconds, szCopy200MASM-203 bytes- copy null terminated
119 milliseconds, MOVEAtoB_YY-  203 bytes- copy lenght MOVZX
120 milliseconds, MOVEAtoB_W -  203 bytes- copy null terminated
********** END 2 **********

These are my results:
Quote
-----------------------------------------------------
Intel(R) Pentium(R) 4 CPU 3.40GHz (SSE3)
-----------------------------------------------------
***** Time table *****

5 milliseconds, MOVEAtoB_XZ-   13 bytes- copy lenght DWORDS+MOVZX
  5 milliseconds, MOVEAtoB_XX-   13 bytes- copy lenght DWORDS+MOVZX
11 milliseconds, MOVEAtoB_X -   13 bytes- copy lenght DWORDS
12 milliseconds, MOVEAtoB_Z -   13 bytes- copy length BYTES
12 milliseconds, MOVEAtoB_Y -   13 bytes- copy lenght MOVZX
12 milliseconds, MOVEAtoB_W -   13 bytes- copy null terminated
13 milliseconds, szCopy10MASM - 13 bytes- copy null terminated
13 milliseconds, MOVEAtoB_YY-   13 bytes- copy lenght MOVZX
;---***---
19 milliseconds, MOVEAtoB_XZ-   53 bytes- copy lenght DWORDS+MOVZX
27 milliseconds, MOVEAtoB_XX-   53 bytes- copy lenght DWORDS+MOVZX
30 milliseconds, MOVEAtoB_XZ103 bytes- copy lenght DWORDS+MOVZX
45 milliseconds, MOVEAtoB_XZ203 bytes- copy lenght DWORDS+MOVZX
45 milliseconds, MOVEAtoB_Y -   53 bytes- copy lenght MOVZX
49 milliseconds, MOVEAtoB_Z -   53 bytes- copy length BYTES
51 milliseconds, MOVEAtoB_XX-  103 bytes- copy lenght DWORDS+MOVZX
55 milliseconds, MOVEAtoB_W -   53 bytes- copy null terminated
59 milliseconds, MOVEAtoB_YY-   53 bytes- copy lenght MOVZX
61 milliseconds, szCopy50MASM - 53 bytes- copy null terminated
68 milliseconds, MOVEAtoB_X -   53 bytes- copy lenght DWORDS
;---***---
73 milliseconds, MOVEAtoB_Y -  103 bytes- copy lenght MOVZX
92 milliseconds, MOVEAtoB_W -  103 bytes- copy null terminated
97 milliseconds, MOVEAtoB_Z -  103 bytes- copy length BYTES
97 milliseconds, MOVEAtoB_X -  103 bytes- copy lenght DWORDS
104 milliseconds, MOVEAtoB_YY-  103 bytes- copy lenght MOVZX
105 milliseconds, szCopy100MASM-103 bytes- copy null terminated
;---***---
136 milliseconds, MOVEAtoB_XX-  203 bytes- copy lenght DWORDS+MOVZX
136 milliseconds, MOVEAtoB_Y -  203 bytes- copy lenght MOVZX
146 milliseconds, MOVEAtoB_Z -  203 bytes- copy length BYTES
175 milliseconds, MOVEAtoB_W -  203 bytes- copy null terminated
197 milliseconds, szCopy200MASM-203 bytes- copy null terminated
197 milliseconds, MOVEAtoB_YY-  203 bytes- copy lenght MOVZX
217 milliseconds, MOVEAtoB_X -  203 bytes- copy lenght DWORDS
********** END 2 **********

Quote
------------------------------------------------------------
Intel(R) Atom(TM) CPU N455   @ 1.66GHz (SSE4)
------------------------------------------------------------
***** Time table *****

21 milliseconds, MOVEAtoB_XX-    13 bytes- copy lenght DWORDS+MOVZX
26 milliseconds, MOVEAtoB_XZ-    13 bytes- copy lenght DWORDS+MOVZX
63 milliseconds, szCopy10MASM -  13 bytes- copy null terminated
70 milliseconds, MOVEAtoB_W -    13 bytes- copy null terminated
71 milliseconds, MOVEAtoB_XZ-    53 bytes- copy lenght DWORDS+MOVZX
74 milliseconds, MOVEAtoB_YY-    13 bytes- copy lenght MOVZX
74 milliseconds, MOVEAtoB_XX-    53 bytes- copy lenght DWORDS+MOVZX
75 milliseconds, MOVEAtoB_Y -    13 bytes- copy lenght MOVZX
76 milliseconds, MOVEAtoB_Z -    13 bytes- copy length BYTES
77 milliseconds, MOVEAtoB_X -    13 bytes- copy lenght DWORDS

121 milliseconds, MOVEAtoB_XZ-   103 bytes- copy lenght DWORDS+MOVZX
134 milliseconds, MOVEAtoB_XX-   103 bytes- copy lenght DWORDS+MOVZX
174 milliseconds, MOVEAtoB_W -    53 bytes- copy null terminated
205 milliseconds, MOVEAtoB_Z -    53 bytes- copy length BYTES
206 milliseconds, MOVEAtoB_Y -    53 bytes- copy lenght MOVZX
207 milliseconds, szCopy50MASM -  53 bytes- copy null terminated
211 milliseconds, MOVEAtoB_XZ-   203 bytes- copy lenght DWORDS+MOVZX
234 milliseconds, MOVEAtoB_X -    53 bytes- copy lenght DWORDS
242 milliseconds, MOVEAtoB_YY-    53 bytes- copy lenght MOVZX
268 milliseconds, MOVEAtoB_XX-   203 bytes- copy lenght DWORDS+MOVZX

325 milliseconds, MOVEAtoB_W -   103 bytes- copy null terminated
386 milliseconds, MOVEAtoB_Z -   103 bytes- copy length BYTES
386 milliseconds, MOVEAtoB_Y -   103 bytes- copy lenght MOVZX
388 milliseconds, szCopy100MASM- 103 bytes- copy null terminated
413 milliseconds, MOVEAtoB_X -   103 bytes- copy lenght DWORDS
453 milliseconds, MOVEAtoB_YY-   103 bytes- copy lenght MOVZX

625 milliseconds, MOVEAtoB_W -   203 bytes- copy null terminated
747 milliseconds, MOVEAtoB_Y -   203 bytes- copy lenght MOVZX
749 milliseconds, szCopy200MASM- 203 bytes- copy null terminated
765 milliseconds, MOVEAtoB_Z -   203 bytes- copy length BYTES
848 milliseconds, MOVEAtoB_X -   203 bytes- copy lenght DWORDS
875 milliseconds, MOVEAtoB_YY-   203 bytes- copy lenght MOVZX
********** END 2 **********

Gunther

Rui,

results from CopyString1:

This string here is one that we want to copy to ***This string here is one that
we want to copy to**This string here is one that we want to copy to ***This stri
ng here is one that we want to copy to**$$$

MOVEAtoB_X10= This strin$$$
MOVEAtoB_Y10= This strin$$$
MOVEAtoB_Z10= This strin$$$
MOVEAtoB_W10= This strin$$$

MOVEAtoB_X50= This string here is one that we want to copy to **$$$
MOVEAtoB_Y50= This string here is one that we want to copy to **$$$
MOVEAtoB_Z50= This string here is one that we want to copy to **$$$
MOVEAtoB_W50= This string here is one that we want to copy to **$$$

MOVEAtoB_X100= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**$$$
MOVEAtoB_Y100= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**$$$
MOVEAtoB_Z100= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**$$$
MOVEAtoB_W100= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**$$$

MOVEAtoB_X200= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**This string here is one that we want to copy
to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Y200= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**This string here is one that we want to copy
to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Z200= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**This string here is one that we want to copy
to ***This string here is one that we want to copy to**$$$
MOVEAtoB_W200= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**This string here is one that we want to copy
to ***This string here is one that we want to copy to**$$$

MOVEAtoB_YY10= This strin$$$
MOVEAtoB_YY50= This string here is one that we want to copy to **$$$
MOVEAtoB_YY100= This string here is one that we want to copy to ***This string h
ere is one that we want to copy to**$$$
MOVEAtoB_YY200= This string here is one that we want to copy to ***This string h
ere is one that we want to copy to**This string here is one that we want to copy
to ***This string here is one that we want to copy to**$$$

MOVEAtoB_XX10= This strin$$$
MOVEAtoB_XX50= This string here is one that we want to copy to **$$$
MOVEAtoB_XX100= This string here is one that we want to copy to ***This string h
ere is one that we want to copy to**$$$
MOVEAtoB_XX200= This string here is one that we want to copy to ***This string h
ere is one that we want to copy to**This string here is one that we want to copy
to ***This string here is one that we want to copy to**$$$

MOVEAtoB_XZ10= This strin$$$
MOVEAtoB_XZ50= This string here is one that we want to copy to **$$$
MOVEAtoB_XZ100= This string here is one that we want to copy to ***This string h
ere is one that we want to copy to**$$$
MOVEAtoB_XZ200= This string here is one that we want to copy to ***This string h
ere is one that we want to copy to**This string here is one that we want to copy
to ***This string here is one that we want to copy to**$$$

szCopy10MASM= This strin$$$
szCopy50MASM= This string here is one that we want to copy to **$$$
szCopy100MASM= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**$$$
szCopy200MASM= This string here is one that we want to copy to ***This string he
re is one that we want to copy to**This string here is one that we want to copy
to ***This string here is one that we want to copy to**$$$

5 milliseconds, MOVEAtoB_X, 13 bytes - copy lenght DWORDS
6 milliseconds, MOVEAtoB_Y, 13 bytes - copy lenght MOVZX
5 milliseconds, MOVEAtoB_Z, 13 bytes - copy length BYTES
9 milliseconds, MOVEAtoB_W, 13 bytes - copy null terminated
30 milliseconds, MOVEAtoB_X, 53 bytes - copy lenght DWORDS
31 milliseconds, MOVEAtoB_Y, 53 bytes - copy lenght MOVZX
30 milliseconds, MOVEAtoB_Z, 53 bytes - copy length BYTES
42 milliseconds, MOVEAtoB_W, 53 bytes - copy null terminated
56 milliseconds, MOVEAtoB_X, 103 bytes - copy lenght DWORDS
59 milliseconds, MOVEAtoB_Y, 103 bytes - copy lenght MOVZX
56 milliseconds, MOVEAtoB_Z, 103 bytes - copy length BYTES
68 milliseconds, MOVEAtoB_W, 103 bytes - copy null terminated
108 milliseconds, MOVEAtoB_X, 203 bytes - copy lenght DWORDS
109 milliseconds, MOVEAtoB_Y, 203 bytes - copy lenght MOVZX
108 milliseconds, MOVEAtoB_Z, 203 bytes - copy length BYTES
120 milliseconds, MOVEAtoB_W, 203 bytes - copy null terminated
9 milliseconds, MOVEAtoB_YY, 13 bytes - copy lenght MOVZX
44 milliseconds, MOVEAtoB_YY, 53 bytes - copy lenght MOVZX
67 milliseconds, MOVEAtoB_YY, 103 bytes - copy lenght MOVZX
119 milliseconds, MOVEAtoB_YY, 203 bytes - copy lenght MOVZX
1 milliseconds, MOVEAtoB_XX, 13 bytes - copy lenght DWORDS+MOVZX
10 milliseconds, MOVEAtoB_XX, 53 bytes - copy lenght DWORDS+MOVZX
20 milliseconds, MOVEAtoB_XX, 103 bytes - copy lenght DWORDS+MOVZX
39 milliseconds, MOVEAtoB_XX, 203 bytes - copy lenght DWORDS+MOVZX
2 milliseconds, MOVEAtoB_XZ, 13 bytes - copy lenght DWORDS+MOVZX
6 milliseconds, MOVEAtoB_XZ, 53 bytes - copy lenght DWORDS+MOVZX
14 milliseconds, MOVEAtoB_XZ, 103 bytes - copy lenght DWORDS+MOVZX
32 milliseconds, MOVEAtoB_XZ, 203 bytes - copy lenght DWORDS+MOVZX
9 milliseconds, szCopy10MASM, 13 bytes - copy lenght DWORDS+MOVZX
32 milliseconds, szCopy50MASM, 53 bytes - copy lenght DWORDS+MOVZX
67 milliseconds, szCopy100MASM, 103 bytes - copy lenght DWORDS+MOVZX
110 milliseconds, szCopy200MASM, 203 bytes - copy lenght DWORDS+MOVZX
*** Press any key to get the time table ***

------------------------------------------
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (SSE4)
------------------------------------------
***** Time table *****

1 milliseconds, MOVEAtoB_XX-  13  bytes- copy lenght DWORDS+MOVZX
2 milliseconds, MOVEAtoB_XZ-  13 bytes- copy lenght DWORDS+MOVZX
5 milliseconds, MOVEAtoB_Z -  13 bytes- copy length BYTES
5 milliseconds, MOVEAtoB_X -  13 bytes- copy lenght DWORDS
6 milliseconds, MOVEAtoB_Y -  13 bytes- copy lenght MOVZX
6 milliseconds, MOVEAtoB_XZ-  53 bytes- copy lenght DWORDS+MOVZX
9 milliseconds, szCopy10MASM -  13 bytes- copy null terminated
9 milliseconds, MOVEAtoB_YY-  13  bytes- copy lenght MOVZX
9 milliseconds, MOVEAtoB_W -  13 bytes- copy null terminated
10 milliseconds, MOVEAtoB_XX-  53  bytes- copy lenght DWORDS+MOVZX
14 milliseconds, MOVEAtoB_XZ- 103 bytes- copy lenght DWORDS+MOVZX
20 milliseconds, MOVEAtoB_XX- 103 bytes- copy lenght DWORDS+MOVZX
30 milliseconds, MOVEAtoB_Z -  53 bytes- copy length BYTES
30 milliseconds, MOVEAtoB_X -  53 bytes- copy lenght DWORDS
31 milliseconds, MOVEAtoB_Y -  53 bytes- copy lenght MOVZX
32 milliseconds, szCopy50MASM -  53 bytes- copy null terminated
32 milliseconds, MOVEAtoB_XZ- 203 bytes- copy lenght DWORDS+MOVZX
39 milliseconds, MOVEAtoB_XX- 203 bytes- copy lenght DWORDS+MOVZX
42 milliseconds, MOVEAtoB_W -  53 bytes- copy null terminated
44 milliseconds, MOVEAtoB_YY-  53  bytes- copy lenght MOVZX
56 milliseconds, MOVEAtoB_Z - 103 bytes- copy length BYTES
56 milliseconds, MOVEAtoB_X - 103 bytes- copy lenght DWORDS
59 milliseconds, MOVEAtoB_Y - 103 bytes- copy lenght MOVZX
67 milliseconds, MOVEAtoB_YY- 103 bytes- copy lenght MOVZX
67 milliseconds, szCopy100MASM- 103 bytes- copy null terminated
68 milliseconds, MOVEAtoB_W - 103 bytes- copy null terminated
108 milliseconds, MOVEAtoB_Z - 203 bytes- copy length BYTES
108 milliseconds, MOVEAtoB_X - 203 bytes- copy lenght DWORDS
109 milliseconds, MOVEAtoB_Y - 203 bytes- copy lenght MOVZX
110 milliseconds, szCopy200MASM- 203 bytes- copy null terminated
119 milliseconds, MOVEAtoB_YY- 203 bytes- copy lenght MOVZX
120 milliseconds, MOVEAtoB_W - 203 bytes- copy null terminated
********** END 2 **********


Gunther
You have to know the facts before you can distort them.

RuiLoureiro

Gunther,
              thank you !  :t
              i added yours results in my reply 37.
              We have 3 different set of results.
              szCopy from MASM is only better in i7
              to copy null terminated strings but not
              for all cases.

Gunther

Hi Rui,

Quote from: RuiLoureiro on June 22, 2014, 07:11:46 PM
              i added yours results in my reply 37.
              We have 3 different set of results.

Don't forget: We've different processors, too.

Gunther
You have to know the facts before you can distort them.

RuiLoureiro

 Yes see reply #37 we see i7 ...

RuiLoureiro

#42
Gunther,
          Thank you for your work !
          Now i am testing this new procedures
          Could you run this new to copy strings,
          please ?

          NOTE: when i copy the length, the string is null terminated also.
                     All lengths are in the strings.

results from Gunther (thanks  :t ):

Quote
--------------------------------------------------------------
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (SSE4)
--------------------------------------------------------------
***** Time table *****

  2 milliseconds, MOVEAtoB_XZ-   13 bytes- copy lenght DWORDS+MOVZX
  2 milliseconds, MOVEAtoB_XX-   13 bytes- copy lenght DWORDS+MOVZX
  5 milliseconds, MOVEAtoB_X -   13 bytes- copy lenght DWORDS
  6 milliseconds, MOVEAtoB_XZ-   53 bytes- copy lenght DWORDS+MOVZX
  6 milliseconds, MOVEAtoB_Z -   13 bytes- copy length BYTES
  6 milliseconds, MOVEAtoB_Y -   13 bytes- copy lenght MOVZX
  6 milliseconds, MOVEAtoB_WZ-   13 bytes- copy null terminated
  9 milliseconds, szCopy10MASM - 13 bytes- copy null terminated
  9 milliseconds, MOVEAtoB_YY-   13 bytes- copy lenght MOVZX
  9 milliseconds, MOVEAtoB_W -   13 bytes- copy null terminated
10 milliseconds, MOVEAtoB_WW-   13 bytes- copy null terminated
10 milliseconds, MOVEAtoB_XX-   53 bytes- copy lenght DWORDS+MOVZX
14 milliseconds, MOVEAtoB_XZ103 bytes- copy lenght DWORDS+MOVZX
20 milliseconds, MOVEAtoB_XX-  103 bytes- copy lenght DWORDS+MOVZX
30 milliseconds, MOVEAtoB_Y -   53 bytes- copy lenght MOVZX
30 milliseconds, MOVEAtoB_X -   53 bytes- copy lenght DWORDS
30 milliseconds, MOVEAtoB_Z -   53 bytes- copy length BYTES
32 milliseconds, MOVEAtoB_XZ203 bytes- copy lenght DWORDS+MOVZX
32 milliseconds, szCopy50MASM - 53 bytes- copy null terminated
32 milliseconds, MOVEAtoB_WZ-   53 bytes- copy null terminated
33 milliseconds, MOVEAtoB_WW-   53 bytes- copy null terminated
40 milliseconds, MOVEAtoB_XX-  203 bytes- copy lenght DWORDS+MOVZX
42 milliseconds, MOVEAtoB_W -   53 bytes- copy null terminated
43 milliseconds, MOVEAtoB_YY-   53 bytes- copy lenght MOVZX

56 milliseconds, MOVEAtoB_Z -  103 bytes- copy length BYTES
56 milliseconds, MOVEAtoB_X -  103 bytes- copy lenght DWORDS
58 milliseconds, MOVEAtoB_Y -  103 bytes- copy lenght MOVZX
58 milliseconds, MOVEAtoB_WZ103 bytes- copy null terminated
67 milliseconds, MOVEAtoB_YY-  103 bytes- copy lenght MOVZX
68 milliseconds, MOVEAtoB_WW-  103 bytes- copy null terminated
69 milliseconds, MOVEAtoB_W -  103 bytes- copy null terminated
69 milliseconds, szCopy100MASM-103 bytes- copy null terminated
71 milliseconds, MOVEAtoB_XZ503 bytes- copy lenght DWORDS+MOVZX
79 milliseconds, MOVEAtoB_XX-  503 bytes- copy lenght DWORDS+MOVZX
108 milliseconds, MOVEAtoB_Z -  203 bytes- copy length BYTES
108 milliseconds, MOVEAtoB_Y -  203 bytes- copy lenght MOVZX
109 milliseconds, MOVEAtoB_WZ203 bytes- copy null terminated
110 milliseconds, MOVEAtoB_X -  203 bytes- copy lenght DWORDS
111 milliseconds, szCopy200MASM-203 bytes- copy null terminated
111 milliseconds, MOVEAtoB_WW-  203 bytes- copy null terminated
120 milliseconds, MOVEAtoB_W -  203 bytes- copy null terminated
120 milliseconds, MOVEAtoB_YY-  203 bytes- copy lenght MOVZX

264 milliseconds, MOVEAtoB_X -  503 bytes- copy lenght DWORDS
265 milliseconds, MOVEAtoB_Z -  503 bytes- copy length BYTES
265 milliseconds, MOVEAtoB_WZ503 bytes- copy null terminated
266 milliseconds, MOVEAtoB_Y -  503 bytes- copy lenght MOVZX
275 milliseconds, MOVEAtoB_WW-  503 bytes- copy null terminated
277 milliseconds, MOVEAtoB_W -  503 bytes- copy null terminated
277 milliseconds, szCopy200MASM-503 bytes- copy null terminated
281 milliseconds, MOVEAtoB_YY-  503 bytes- copy lenght MOVZX
********** END II **********

These are my results:
Quote
-----------------------------------------------------
Intel(R) Pentium(R) 4 CPU 3.40GHz (SSE3)
-----------------------------------------------------
***** Time table *****

  5 milliseconds, MOVEAtoB_XZ-   13 bytes- copy lenght DWORDS+MOVZX
  5 milliseconds, MOVEAtoB_XX-   13 bytes- copy lenght DWORDS+MOVZX
10 milliseconds, MOVEAtoB_WZ-   13 bytes- copy null terminated
10 milliseconds, MOVEAtoB_WW-   13 bytes- copy null terminated
11 milliseconds, MOVEAtoB_W -   13 bytes- copy null terminated
11 milliseconds, MOVEAtoB_X -   13 bytes- copy lenght DWORDS
12 milliseconds, MOVEAtoB_Y -   13 bytes- copy lenght MOVZX
12 milliseconds, MOVEAtoB_Z -   13 bytes- copy length BYTES
13 milliseconds, szCopy10MASM - 13 bytes- copy null terminated
13 milliseconds, MOVEAtoB_YY-   13 bytes- copy lenght MOVZX

16 milliseconds, MOVEAtoB_XZ-   53 bytes- copy lenght DWORDS+MOVZX
26 milliseconds, MOVEAtoB_XX-   53 bytes- copy lenght DWORDS+MOVZX
29 milliseconds, MOVEAtoB_XZ103 bytes- copy lenght DWORDS+MOVZX
41 milliseconds, MOVEAtoB_Y -   53 bytes- copy lenght MOVZX
44 milliseconds, MOVEAtoB_XZ203 bytes- copy lenght DWORDS+MOVZX
46 milliseconds, MOVEAtoB_Z -   53 bytes- copy length BYTES
52 milliseconds, MOVEAtoB_WW-   53 bytes- copy null terminated
52 milliseconds, MOVEAtoB_WZ-   53 bytes- copy null terminated
53 milliseconds, MOVEAtoB_W -   53 bytes- copy null terminated
57 milliseconds, MOVEAtoB_XX-  103 bytes- copy lenght DWORDS+MOVZX
59 milliseconds, MOVEAtoB_YY-   53 bytes- copy lenght MOVZX
62 milliseconds, szCopy50MASM - 53 bytes- copy null terminated
67 milliseconds, MOVEAtoB_X -   53 bytes- copy lenght DWORDS

71 milliseconds, MOVEAtoB_Y -  103 bytes- copy lenght MOVZX
79 milliseconds, MOVEAtoB_Z -  103 bytes- copy length BYTES
89 milliseconds, MOVEAtoB_WW-  103 bytes- copy null terminated
89 milliseconds, MOVEAtoB_WZ-  103 bytes- copy null terminated
93 milliseconds, MOVEAtoB_W -  103 bytes- copy null terminated
96 milliseconds, MOVEAtoB_X -  103 bytes- copy lenght DWORDS
98 milliseconds, MOVEAtoB_XZ503 bytes- copy lenght DWORDS+MOVZX
105 milliseconds, MOVEAtoB_YY-  103 bytes- copy lenght MOVZX
108 milliseconds, szCopy100MASM-103 bytes- copy null terminated

131 milliseconds, MOVEAtoB_Y -  203 bytes- copy lenght MOVZX
139 milliseconds, MOVEAtoB_XX-  203 bytes- copy lenght DWORDS+MOVZX
146 milliseconds, MOVEAtoB_Z -  203 bytes- copy length BYTES
165 milliseconds, MOVEAtoB_WZ-  203 bytes- copy null terminated
167 milliseconds, MOVEAtoB_WW-  203 bytes- copy null terminated
169 milliseconds, MOVEAtoB_W -  203 bytes- copy null terminated
193 milliseconds, MOVEAtoB_YY-  203 bytes- copy lenght MOVZX
197 milliseconds, szCopy200MASM-203 bytes- copy null terminated
213 milliseconds, MOVEAtoB_X -  203 bytes- copy lenght DWORDS

313 milliseconds, MOVEAtoB_XX-  503 bytes- copy lenght DWORDS+MOVZX
318 milliseconds, MOVEAtoB_Y -  503 bytes- copy lenght MOVZX
355 milliseconds, MOVEAtoB_Z -  503 bytes- copy length BYTES
388 milliseconds, MOVEAtoB_WW-  503 bytes- copy null terminated
394 milliseconds, MOVEAtoB_WZ-  503 bytes- copy null terminated
407 milliseconds, MOVEAtoB_W -  503 bytes- copy null terminated
466 milliseconds, MOVEAtoB_YY-  503 bytes- copy lenght MOVZX
477 milliseconds, szCopy200MASM-503 bytes- copy null terminated
519 milliseconds, MOVEAtoB_X -  503 bytes- copy lenght DWORDS
********** END II **********

Quote
-------------------------------------------------------------
Intel(R) Atom(TM) CPU N455   @ 1.66GHz (SSE4)
-------------------------------------------------------------
***** Time table *****

25 milliseconds, MOVEAtoB_XX-    13 bytes- copy lenght DWORDS+MOVZX
26 milliseconds, MOVEAtoB_XZ-    13 bytes- copy lenght DWORDS+MOVZX
52 milliseconds, MOVEAtoB_WZ-    13 bytes- copy null terminated
52 milliseconds, MOVEAtoB_W -    13 bytes- copy null terminated
54 milliseconds, MOVEAtoB_WW-    13 bytes- copy null terminated
60 milliseconds, MOVEAtoB_Y -    13 bytes- copy lenght MOVZX
63 milliseconds, szCopy10MASM -  13 bytes- copy null terminated
65 milliseconds, MOVEAtoB_Z -    13 bytes- copy length BYTES
72 milliseconds, MOVEAtoB_XZ-    53 bytes- copy lenght DWORDS+MOVZX
75 milliseconds, MOVEAtoB_X -    13 bytes- copy lenght DWORDS
76 milliseconds, MOVEAtoB_XX-    53 bytes- copy lenght DWORDS+MOVZX
89 milliseconds, MOVEAtoB_YY-    13 bytes- copy lenght MOVZX

121 milliseconds, MOVEAtoB_XZ-   103 bytes- copy lenght DWORDS+MOVZX
134 milliseconds, MOVEAtoB_XX-   103 bytes- copy lenght DWORDS+MOVZX
174 milliseconds, MOVEAtoB_WW-    53 bytes- copy null terminated
174 milliseconds, MOVEAtoB_W -    53 bytes- copy null terminated
175 milliseconds, MOVEAtoB_WZ-    53 bytes- copy null terminated
205 milliseconds, MOVEAtoB_Y -    53 bytes- copy lenght MOVZX
206 milliseconds, MOVEAtoB_Z -    53 bytes- copy length BYTES
208 milliseconds, szCopy50MASM -  53 bytes- copy null terminated
211 milliseconds, MOVEAtoB_XZ-   203 bytes- copy lenght DWORDS+MOVZX
232 milliseconds, MOVEAtoB_X -    53 bytes- copy lenght DWORDS
268 milliseconds, MOVEAtoB_XX-   203 bytes- copy lenght DWORDS+MOVZX
298 milliseconds, MOVEAtoB_YY-    53 bytes- copy lenght MOVZX

331 milliseconds, MOVEAtoB_W -   103 bytes- copy null terminated
333 milliseconds, MOVEAtoB_WZ-   103 bytes- copy null terminated
336 milliseconds, MOVEAtoB_WW-   103 bytes- copy null terminated
385 milliseconds, MOVEAtoB_Z -   103 bytes- copy length BYTES
387 milliseconds, MOVEAtoB_Y -   103 bytes- copy lenght MOVZX
389 milliseconds, szCopy100MASM- 103 bytes- copy null terminated
411 milliseconds, MOVEAtoB_X -   103 bytes- copy lenght DWORDS
483 milliseconds, MOVEAtoB_XZ-   503 bytes- copy lenght DWORDS+MOVZX
551 milliseconds, MOVEAtoB_YY-   103 bytes- copy lenght MOVZX
600 milliseconds, MOVEAtoB_XX-   503 bytes- copy lenght DWORDS+MOVZX

627 milliseconds, MOVEAtoB_W -   203 bytes- copy null terminated
628 milliseconds, MOVEAtoB_WW-   203 bytes- copy null terminated
640 milliseconds, MOVEAtoB_WZ-   203 bytes- copy null terminated
749 milliseconds, MOVEAtoB_Z -   203 bytes- copy length BYTES
751 milliseconds, MOVEAtoB_Y -   203 bytes- copy lenght MOVZX
753 milliseconds, szCopy200MASM- 203 bytes- copy null terminated
862 milliseconds, MOVEAtoB_X -   203 bytes- copy lenght DWORDS
926 milliseconds, MOVEAtoB_YY-   203 bytes- copy lenght MOVZX
---***---
1536 milliseconds, MOVEAtoB_WW503 bytes- copy null terminated
1538 milliseconds, MOVEAtoB_WZ-  503 bytes- copy null terminated
1834 milliseconds, MOVEAtoB_Y -  503 bytes- copy lenght MOVZX
1838 milliseconds, szCopy200MASM-503 bytes- copy null terminated
1842 milliseconds, MOVEAtoB_Z -  503 bytes- copy length BYTES
1939 milliseconds, MOVEAtoB_W -  503 bytes- copy null terminated
2026 milliseconds, MOVEAtoB_X -  503 bytes- copy lenght DWORDS
2147 milliseconds, MOVEAtoB_YY-  503 bytes- copy lenght MOVZX
********** END II **********

Gunther

Hi Rui,


This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_X10= This strin$$$
MOVEAtoB_Y10= This strin$$$
MOVEAtoB_Z10= This strin$$$
MOVEAtoB_W10= This strin$$$

MOVEAtoB_X50= This string here is one that we want to copy to **$$$
MOVEAtoB_Y50= This string here is one that we want to copy to **$$$
MOVEAtoB_Z50= This string here is one that we want to copy to **$$$
MOVEAtoB_W50= This string here is one that we want to copy to **$$$

MOVEAtoB_X100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Y100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Z100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_W100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_X200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Y200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Z200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_W200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_X500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Y500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_Z500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_W500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_YY10= This strin$$$
MOVEAtoB_YY50= This string here is one that we want to copy to **$$$
MOVEAtoB_YY100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_YY200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_YY500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_XX10= This strin$$$
MOVEAtoB_XX50= This string here is one that we want to copy to **$$$
MOVEAtoB_XX100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_XX200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_XX500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_XZ10= This strin$$$
MOVEAtoB_XZ50= This string here is one that we want to copy to **$$$
MOVEAtoB_XZ100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_XZ200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_XZ500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

szCopy10MASM= This strin$$$
szCopy50MASM= This string here is one that we want to copy to **$$$
szCopy100MASM= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
szCopy200MASM= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
szCopy500MASM= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_WW10= This strin$$$
MOVEAtoB_WW50= This string here is one that we want to copy to **$$$
MOVEAtoB_WW100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_WW200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_WW500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

MOVEAtoB_WZ10= This strin$$$
MOVEAtoB_WZ50= This string here is one that we want to copy to **$$$
MOVEAtoB_WZ100= This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_WZ200= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$
MOVEAtoB_WZ500= This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**This string here is one that we want to copy to ***This string here is one that we want to copy to**$$$

********** END I **********
5 milliseconds, MOVEAtoB_X, 13 bytes - copy lenght DWORDS
6 milliseconds, MOVEAtoB_Y, 13 bytes - copy lenght MOVZX
6 milliseconds, MOVEAtoB_Z, 13 bytes - copy length BYTES
9 milliseconds, MOVEAtoB_W, 13 bytes - copy null terminated
30 milliseconds, MOVEAtoB_X, 53 bytes - copy lenght DWORDS
30 milliseconds, MOVEAtoB_Y, 53 bytes - copy lenght MOVZX
30 milliseconds, MOVEAtoB_Z, 53 bytes - copy length BYTES
42 milliseconds, MOVEAtoB_W, 53 bytes - copy null terminated
56 milliseconds, MOVEAtoB_X, 103 bytes - copy lenght DWORDS
58 milliseconds, MOVEAtoB_Y, 103 bytes - copy lenght MOVZX
56 milliseconds, MOVEAtoB_Z, 103 bytes - copy length BYTES
69 milliseconds, MOVEAtoB_W, 103 bytes - copy null terminated
110 milliseconds, MOVEAtoB_X, 203 bytes - copy lenght DWORDS
108 milliseconds, MOVEAtoB_Y, 203 bytes - copy lenght MOVZX
108 milliseconds, MOVEAtoB_Z, 203 bytes - copy length BYTES
120 milliseconds, MOVEAtoB_W, 203 bytes - copy null terminated
264 milliseconds, MOVEAtoB_X, 503 bytes - copy lenght DWORDS
266 milliseconds, MOVEAtoB_Y, 503 bytes - copy lenght MOVZX
265 milliseconds, MOVEAtoB_Z, 503 bytes - copy length BYTES
277 milliseconds, MOVEAtoB_W, 503 bytes - copy null terminated
9 milliseconds, MOVEAtoB_YY, 13 bytes - copy lenght MOVZX
43 milliseconds, MOVEAtoB_YY, 53 bytes - copy lenght MOVZX
67 milliseconds, MOVEAtoB_YY, 103 bytes - copy lenght MOVZX
120 milliseconds, MOVEAtoB_YY, 203 bytes - copy lenght MOVZX
281 milliseconds, MOVEAtoB_YY, 503 bytes - copy lenght MOVZX
2 milliseconds, MOVEAtoB_XX, 13 bytes - copy lenght DWORDS+MOVZX
10 milliseconds, MOVEAtoB_XX, 53 bytes - copy lenght DWORDS+MOVZX
20 milliseconds, MOVEAtoB_XX, 103 bytes - copy lenght DWORDS+MOVZX
40 milliseconds, MOVEAtoB_XX, 203 bytes - copy lenght DWORDS+MOVZX
79 milliseconds, MOVEAtoB_XX, 503 bytes - copy lenght DWORDS+MOVZX
2 milliseconds, MOVEAtoB_XZ, 13 bytes - copy lenght DWORDS+MOVZX
6 milliseconds, MOVEAtoB_XZ, 53 bytes - copy lenght DWORDS+MOVZX
14 milliseconds, MOVEAtoB_XZ, 103 bytes - copy lenght DWORDS+MOVZX
32 milliseconds, MOVEAtoB_XZ, 203 bytes - copy lenght DWORDS+MOVZX
71 milliseconds, MOVEAtoB_XZ, 503 bytes - copy lenght DWORDS+MOVZX
9 milliseconds, szCopy10MASM, 13 bytes - copy lenght DWORDS+MOVZX
32 milliseconds, szCopy50MASM, 53 bytes - copy lenght DWORDS+MOVZX
69 milliseconds, szCopy100MASM, 103 bytes - copy lenght DWORDS+MOVZX
111 milliseconds, szCopy200MASM, 203 bytes - copy lenght DWORDS+MOVZX
277 milliseconds, szCopy500MASM, 503 bytes - copy lenght DWORDS+MOVZX
10 milliseconds, MOVEAtoB_WW, 13 bytes - copy lenght DWORDS+MOVZX
33 milliseconds, MOVEAtoB_WW, 53 bytes - copy lenght DWORDS+MOVZX
68 milliseconds, MOVEAtoB_WW, 103 bytes - copy lenght DWORDS+MOVZX
111 milliseconds, MOVEAtoB_WW, 203 bytes - copy lenght DWORDS+MOVZX
275 milliseconds, MOVEAtoB_WW, 503 bytes - copy lenght DWORDS+MOVZX
6 milliseconds, MOVEAtoB_WZ, 13 bytes - copy lenght DWORDS+MOVZX
32 milliseconds, MOVEAtoB_WZ, 53 bytes - copy lenght DWORDS+MOVZX
58 milliseconds, MOVEAtoB_WZ, 103 bytes - copy lenght DWORDS+MOVZX
109 milliseconds, MOVEAtoB_WZ, 203 bytes - copy lenght DWORDS+MOVZX
265 milliseconds, MOVEAtoB_WZ, 503 bytes - copy lenght DWORDS+MOVZX
*** Press any key to get the time table ***

------------------------------------------
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (SSE4)
------------------------------------------
***** Time table *****

2 milliseconds, MOVEAtoB_XZ-  13 bytes- copy lenght DWORDS+MOVZX
2 milliseconds, MOVEAtoB_XX-  13  bytes- copy lenght DWORDS+MOVZX
5 milliseconds, MOVEAtoB_X -  13 bytes- copy lenght DWORDS
6 milliseconds, MOVEAtoB_XZ-  53 bytes- copy lenght DWORDS+MOVZX
6 milliseconds, MOVEAtoB_Z -  13 bytes- copy length BYTES
6 milliseconds, MOVEAtoB_Y -  13 bytes- copy lenght MOVZX
6 milliseconds, MOVEAtoB_WZ-  13 bytes- copy null terminated
9 milliseconds, szCopy10MASM -  13 bytes- copy null terminated
9 milliseconds, MOVEAtoB_YY-  13  bytes- copy lenght MOVZX
9 milliseconds, MOVEAtoB_W -  13 bytes- copy null terminated
10 milliseconds, MOVEAtoB_WW-  13 bytes- copy null terminated
10 milliseconds, MOVEAtoB_XX-  53  bytes- copy lenght DWORDS+MOVZX
14 milliseconds, MOVEAtoB_XZ- 103 bytes- copy lenght DWORDS+MOVZX
20 milliseconds, MOVEAtoB_XX- 103 bytes- copy lenght DWORDS+MOVZX
30 milliseconds, MOVEAtoB_Y -  53 bytes- copy lenght MOVZX
30 milliseconds, MOVEAtoB_X -  53 bytes- copy lenght DWORDS
30 milliseconds, MOVEAtoB_Z -  53 bytes- copy length BYTES
32 milliseconds, MOVEAtoB_XZ- 203 bytes- copy lenght DWORDS+MOVZX
32 milliseconds, szCopy50MASM -  53 bytes- copy null terminated
32 milliseconds, MOVEAtoB_WZ-  53 bytes- copy null terminated
33 milliseconds, MOVEAtoB_WW-  53 bytes- copy null terminated
40 milliseconds, MOVEAtoB_XX- 203 bytes- copy lenght DWORDS+MOVZX
42 milliseconds, MOVEAtoB_W -  53 bytes- copy null terminated
43 milliseconds, MOVEAtoB_YY-  53  bytes- copy lenght MOVZX
56 milliseconds, MOVEAtoB_Z - 103 bytes- copy length BYTES
56 milliseconds, MOVEAtoB_X - 103 bytes- copy lenght DWORDS
58 milliseconds, MOVEAtoB_Y - 103 bytes- copy lenght MOVZX
58 milliseconds, MOVEAtoB_WZ- 103 bytes- copy null terminated
67 milliseconds, MOVEAtoB_YY- 103 bytes- copy lenght MOVZX
68 milliseconds, MOVEAtoB_WW- 103 bytes- copy null terminated
69 milliseconds, MOVEAtoB_W - 103 bytes- copy null terminated
69 milliseconds, szCopy100MASM- 103 bytes- copy null terminated
71 milliseconds, MOVEAtoB_XZ- 503 bytes- copy lenght DWORDS+MOVZX
79 milliseconds, MOVEAtoB_XX- 503 bytes- copy lenght DWORDS+MOVZX
108 milliseconds, MOVEAtoB_Z - 203 bytes- copy length BYTES
108 milliseconds, MOVEAtoB_Y - 203 bytes- copy lenght MOVZX
109 milliseconds, MOVEAtoB_WZ- 203 bytes- copy null terminated
110 milliseconds, MOVEAtoB_X - 203 bytes- copy lenght DWORDS
111 milliseconds, szCopy200MASM- 203 bytes- copy null terminated
111 milliseconds, MOVEAtoB_WW- 203 bytes- copy null terminated
120 milliseconds, MOVEAtoB_W - 203 bytes- copy null terminated
120 milliseconds, MOVEAtoB_YY- 203 bytes- copy lenght MOVZX
264 milliseconds, MOVEAtoB_X - 503 bytes- copy lenght DWORDS
265 milliseconds, MOVEAtoB_Z - 503 bytes- copy length BYTES
265 milliseconds, MOVEAtoB_WZ- 503 bytes- copy null terminated
266 milliseconds, MOVEAtoB_Y - 503 bytes- copy lenght MOVZX
275 milliseconds, MOVEAtoB_WW- 503 bytes- copy null terminated
277 milliseconds, MOVEAtoB_W - 503 bytes- copy null terminated
277 milliseconds, szCopy200MASM- 503 bytes- copy null terminated
281 milliseconds, MOVEAtoB_YY- 503 bytes- copy lenght MOVZX
********** END II **********


Gunther
You have to know the facts before you can distort them.

RuiLoureiro

 :biggrin: 
Hi Gunther,             
                     thank you !  :t                
                     i added yours results in my reply #42 (see it).
                     impressive!

                    Your i7 is 4 times more powerful (+/-)!