From: hutch-- on
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
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
"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
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
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

First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Prev: A last Linux/x graphics demo
Next: MASM to NASM (or other)