From: hutch-- on 8 Sep 2007 09:35 Awe diddums, Betov grovelling to the incestual old ALA club where time stood still in 1992 in MS-DOS. "Its called birds of a feather in bed to gether pissing in each others pocket in unison.". Ho ho ho etc ....
From: Betov on 8 Sep 2007 10:03 hutch-- <hutch(a)movsd.com> �crivait news:1189256888.839238.292900 @g4g2000hsf.googlegroups.com: > Hold your breath waiting for a reply from Microsoft. How many years > has he been waiting now, 3 or 4 ? Yes. And we will probably wait even more before seing any source of yours. Well... Thanks for saying. So, if you have nothing better to do than redistributing illegaly a MicroSoft product, if you have never written anything in Assembly, but snippets for Power-Basic... What are you doing, exactly, here. Just trolling, because you cannot suffer the Assembly Programmers' freedom of speech? Betov. < http://rosasm.org >
From: Betov on 8 Sep 2007 10:15 "Wolfgang Kern" <nowhere(a)never.at> �crivait news:fbuagf$nh4$2 @newsreader2.utanet.at: > either way, I'm Not German anyway. :)) ;) Betov. < http://rosasm.org >
From: Herbert Kleebauer on 8 Sep 2007 13:04 hutch-- wrote: > > Do you know a better way to make a program with less than > > 1024 bytes which displays a message box in Win32? With > > your assembly programming skills and the "sheer brutal > > power of MASM" this shouldn't be problem. And as I already > > said, I'm always keen on learning something new. > > Yes, you seem to have learnt how to lie to the members in ALA. When > will you start eating Wannabee's hat ? Which lie? I said I have a executable which is smaller than 1024 bytes and which, when executed, displays a message box on all Win32 versions. I even posted the binary so you could test it yourself. Where is the lie? Where is your first MASM example?
From: �a/b on 8 Sep 2007 17:23
On Fri, 07 Sep 2007 21:29:48 +0200, Herbert Kleebauer wrote: > Come up with 10-20 diffrent examples of _complete_ (short) MASM > programs, and I will write the RosAsm equivalents. And lets compare > them. All called code must be present, except for Win32 API code. i "come up" with one example of routine (not a _complete_ program) this is a function that i immage all you have something near. there are the specifications and the traslation in nasm **i not want challenge anyone ** i not want eat any hat only just curious to see others functions of the same kind :))) don't know how many errors there are... section _DATA public use32 class=DATA /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 tab dd 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x36ff /* 0 dd 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff /* 10 dd 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff /* 20 dd 0xff, 0xff,0x37ff,0x1ff, 0xff, 0xff,0x33ff,0x35ff,0xff,0x34ff /* 30 dd 0x31ff,0xff, 0xff, 0xff, 0xff, 0x3ff, 0xff, 0xff, 0x0, 0x1 /* 40 dd 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xff, 0xff /* 50 dd 0xff, 0xff, 0xff, 0xff, 0xff, 0xa, 0xb, 0xc, 0xd, 0xe /* 60 dd 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18 /* 70 dd 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22 /* 80 dd 0x23, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa, 0xb, 0xc /* 90 dd 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 /* 100 dd 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20 /* 110 dd 0x21, 0x22, 0x23, 0xff, 0xff, 0xff, 0x2ff /* 120 times 132 dd 0xff section _TEXT public use32 class=CODE /* 0i, 4r, 8c, 12b, 16ra, 20string, 24pos, 28base StrToUns: < b, c, r, i << @string=[s+20], @pos=[s+24], @base=[s+28] ..in: i=(a)string; i==0#.ce; b^=b; c=(a)base; c>36#.ce; c<=1#.ce; #.c1; ..c0: {++i; .c1: B*i==' '#.c0; B*i==9#.c0;} B*i=='+'!#.c2 | ++i; ..c2: bl=*i; [tab+4*b]>=c#.ce; #.c5; ..ce: a=(a)pos; r=(a)string; *a=r; a=0; ##.ca; ..c4: {++i; .c5: B*i=='0'#.c4; } a=0; ..c6: bl=*i; r=[tab+4*b]; r>=c#.c8 b = r; mul c | r#.c7 /* in ci +/-oo a+=b | jc .c7 ++i; #.c6; ..c7: {++i; bl=*i; r=[tab+4*b]; r<c#.c7;} ..ci: r=1; a=0xFFFFFFFF; #.c9; ..c8: r=0; ..c9: b=(a)pos; *b=i; r==0!#.ca; clc; #.cf ..ca: stc; ..cf: >> @string, @pos, @base > b, c, r, i ret 12 traslation -------------------------------------------- section _DATA public use32 class=DATA ; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 tab dd 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0x36ff ; 0 dd 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ; 10 dd 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff ; 20 dd 0xff , 0xff , 0x37ff , 0x1ff , 0xff , 0xff , 0x33ff , 0x35ff , 0xff , 0x34ff ; 30 dd 0x31ff , 0xff , 0xff , 0xff , 0xff , 0x3ff , 0xff , 0xff , 0x0 , 0x1 ; 40 dd 0x2 , 0x3 , 0x4 , 0x5 , 0x6 , 0x7 , 0x8 , 0x9 , 0xff , 0xff ; 50 dd 0xff , 0xff , 0xff , 0xff , 0xff , 0xa , 0xb , 0xc , 0xd , 0xe ; 60 dd 0xf , 0x10 , 0x11 , 0x12 , 0x13 , 0x14 , 0x15 , 0x16 , 0x17 , 0x18 ; 70 dd 0x19 , 0x1a , 0x1b , 0x1c , 0x1d , 0x1e , 0x1f , 0x20 , 0x21 , 0x22 ; 80 dd 0x23 , 0xff , 0xff , 0xff , 0xff , 0xff , 0xff , 0xa , 0xb , 0xc ; 90 dd 0xd , 0xe , 0xf , 0x10 , 0x11 , 0x12 , 0x13 , 0x14 , 0x15 , 0x16 ; 100 dd 0x17 , 0x18 , 0x19 , 0x1a , 0x1b , 0x1c , 0x1d , 0x1e , 0x1f , 0x20 ; 110 dd 0x21 , 0x22 , 0x23 , 0xff , 0xff , 0xff , 0x2ff ; 120 times 132 dd 0xff section _TEXT public use32 class=CODE ; eax __stdcall StrToUns(char* string, char** pos, int base) ; eg. char buf[256]={0}, *pc; int val=StrToUns(buf, &pc, 10); ; CF== carry flag ; format==<spaces><+><digits> where spaces={' ', '\t'} ; convert the parameter "string" number ; in the base format in a integer in the range ; [0, 0xffffffff] that return in eax. ; 2<=base<=36 possible digits "0123456789[A-Z][a-z]" ; if there is not a number in the above format then ; after the call => (string==pos and CF==1) ; if overflow return 0xffffffff CF==1 ; if there is (or not) overflow it read all the number ; and save in "pos" the first not digit position ; if all is ok CF==0 if error CF==1 ; 0i, 4r, 8c, 12b, 16ra, 20string, 24pos, 28base StrToUns: push ebx push ecx push edx push esi %define @string [esp+20] %define @pos [esp+24] %define @base [esp+28] ..in: mov esi, @string cmp esi, 0 je .ce xor ebx, ebx mov ecx, @base cmp ecx, 36 ja .ce cmp ecx, 1 jbe .ce jmp short .c1 ..c0: inc esi ..c1: cmp byte[esi], ' ' je .c0 cmp byte[esi], 9 je .c0 cmp byte[esi], '+' jne .c2 inc esi ..c2: mov bl, [esi] cmp [tab+4*ebx], ecx jae .ce jmp short .c5 ..ce: mov eax, @pos mov edx, @string mov [eax], edx mov eax, 0 jmp .ca ..c4: inc esi ..c5: cmp byte[esi], '0' je .c4 mov eax, 0 ..c6: mov bl, [esi] mov edx, [tab+4*ebx] cmp edx, ecx jae .c8 mov ebx, edx mul ecx ; in ci +/-oo cmp edx, 0 jne .c7 add eax, ebx jc .c7 inc esi jmp short .c6 ..c7: inc esi mov bl, [esi] mov edx, [tab+4*ebx] cmp edx, ecx jb .c7 ..ci: mov edx, 1 mov eax, 0xFFFFFFFF jmp short .c9 ..c8: mov edx, 0 ..c9: mov ebx, @pos mov [ebx], esi cmp edx, 0 jne .ca clc jmp short .cf ..ca: stc ..cf: %undef @string %undef @pos %undef @base pop esi pop edx pop ecx pop ebx ret 12 |