flat assembler
Message board for the users of flat assembler.
![]() Goto page Previous 1, 2, 3, 4 Next |
Author |
|
0.1 25 Jul 2007, 11:20
vador they (bootloaders) are just one thing, making it plural or adding too
many many will not work. |
|||
![]() |
|
Dex4u 25 Jul 2007, 15:21
Theres lots of usefull ASM programs eg:
http://freshmeat.net/browse/162/?hash=a8619e0da33d3b1bbcd42f45ecadb1d4&offset=0 |
|||
![]() |
|
0.1 26 Jul 2007, 05:45
fasm is not a toy!
OctaOS and MenuetOS do not compare to Linux. |
|||
![]() |
|
Dex4u 26 Jul 2007, 15:42
0.1 wrote: fasm is not a toy! If you could get the same number of coders, to code for "OctaOS and MenuetOS" has do for linux, than they would more than compare. Also if Co like IBM put the same money in ![]() |
|||
![]() |
|
rugxulo 26 Jul 2007, 22:46
0.1 wrote: fasm is not a toy! Linux is 16 years old. I dunno exactly about OctaOS (three? four?) but Menuet is something like five. They're all free, multitasking OSes with GUIs running (at least) on IA32 cpus able to bootstrap themselves. And FASM runs on all of them. And if we can agree that "FASM is not a toy" (as Madis says), then surely any OS running it is not a toy either. |
|||
![]() |
|
kohlrak 27 Jul 2007, 02:30
i think menuet needs a boost, that's all. I don't have the hardware for it, though.
|
|||
![]() |
|
LocoDelAssembly 27 Jul 2007, 02:43
- 23.01.2007 M32 0.84 released!
How is possible that you don't have the hardware for it? |
|||
![]() |
|
kohlrak 27 Jul 2007, 02:46
I mean 64... 32 is still updated but it's pretty much an ignored project from what i've seen.
|
|||
![]() |
|
LocoDelAssembly 27 Jul 2007, 02:59
QEMU? Yeah, I know it is not the same but at least you will see it running. I never tried but perhaps with QEMU you will be able to make networking work thanks to NIC emulation which otherwise could be a little hard because there is no much support for a big variety of NICs.
|
|||
![]() |
|
Dex4u 27 Jul 2007, 05:33
kohlrak wrote: I mean 64... 32 is still updated but it's pretty much an ignored project from what i've seen. Theres loads of work being done on KolibriOS a menuet fork. http://www.kolibri.hut1.ru/index_e.htm http://meos32.7.forumer.com/index.php?sid=628a8d6fc3fde7e0d655cbbec1cac411 |
|||
![]() |
|
0.1 27 Jul 2007, 06:01
Okay they (*OS) aren't toys either!
But we are children! |
|||
![]() |
|
0.1 28 Jul 2007, 06:24
Check for balanced ()s
_________________ Code: o__=- ) (\ /\ |
|||||||||||
![]() |
|
0.1 28 Jul 2007, 09:34
Check for balanced []s ()s {}s <>s even nested.
In expressions like this: {[ + 7 * (8 + 4)] * <7 + 1>}
_________________ Code: o__=- ) (\ /\ |
|||||||||||
![]() |
|
kohlrak 28 Jul 2007, 11:05
Quote: Theres loads of work being done on KolibriOS a menuet fork. I know, i tried it out. If i wasn't having a particular problem with it i'd be able to give it a rating. |
|||
![]() |
|
0.1 01 Aug 2007, 12:33
Untested
Code: ; Sort the array of integers. ; esi == array pointer ; ecx == array count sort: mov eax, 0 .l1: mov ebx, eax mov edx, [esi+eax*4] .l2: cmp [esi+ebx*4], edx jge .after_swap xchg edx, [esi+ebx*4] .after_swap: inc ebx cmp ebx, ecx jb .l2 mov [esi+eax*4], edx inc eax cmp eax, ecx jb .l1 ret _________________ Code: o__=- ) (\ /\ Last edited by 0.1 on 02 Aug 2007, 06:32; edited 1 time in total |
|||
![]() |
|
0.1 02 Aug 2007, 06:31
Code: ; Filter vovels. ; esi == ASCIIZ character string pointer. filter: mov edi, esi .nxt: lodsb cmp al, 'a' je .nxt cmp al, 'e' je .nxt cmp al, 'i' je .nxt cmp al, 'o' je .nxt cmp al, 'u' je .nxt stosb cmp al, 0 jnz .nxt ret PS: sorry big blunder earlier! _________________ Code: o__=- ) (\ /\ Last edited by 0.1 on 02 Aug 2007, 11:26; edited 1 time in total |
|||
![]() |
|
Madis731 02 Aug 2007, 10:30
Actually the code you presented is what assembly programmers call:
Code: nop What should that last piece of code do? Filter them IN or filter them OUT? Definitely needs optimization ![]() Anyways, instead of whining I should code: Code: mov esi,blah mov edi,esi filter: lodsb imul ebx,eax,01010101h xor ebx,'aeio' mov edx,ebx not ebx sub edx,01010101h and ebx,80808080h and ebx,edx jne filter ; cmp al, 'a' ; je filter ; cmp al, 'e' ; je filter ; cmp al, 'i' ; je filter ; cmp al, 'o' ; je filter cmp eax, 'u' ;For any four characters you can repeat the code sequence above. CMOVxx would help also. je filter stosb test eax,eax jnz filter mov byte[edi],0 ret blah db 'I''m actually pretty smart!',0 SSE2 anyone? Code: mov esi,text mov edi,esi filter: lodsb imul ebx,eax,01010101h movd xmm0,ebx pshufd xmm0,xmm0,00000000b ;Populate pxor xmm0,[filter_chars] ;The same null-byte detection as above movaps xmm1,xmm0 psubd xmm1,[const01] pandn xmm0,[const80] pand xmm0,xmm1 pmovmskb ebx,xmm0 test ebx,ebx jne filter stosb test eax,eax jnz filter mov byte[edi],0 ret align 16 const01: dq 0101010101010101h,0101010101010101h const80: dq 8080808080808080h,8080808080808080h filter_chars: db 'AEIOUaeiouuuuuuu',0 ;16-byte align ;You can fill these 16 byte until you run out of space. Then you ;can make another iteration or use another register. text db 'I''m actually pretty smart!',0 |
|||
![]() |
|
0.1 02 Aug 2007, 13:22
Thanks a lot Madis731!
Although I do not understand your examples (DUMB!) but they seem very good! And sorry everyone for that silly mistake ! _________________ Code: o__=- ) (\ /\ |
|||
![]() |
|
0.1 02 Aug 2007, 13:58
Code: ; Convert from unsigned number in EAX to ASCIIZ string pointed by EDI. conv: mov ecx, 10 push 0 .l1: xor edx, edx div ecx or dl, '0' push edx test eax, eax jnz .l1 .l2: pop eax stosb cmp al, 0 jnz .l2 ret _________________ Code: o__=- ) (\ /\ |
|||
![]() |
|
Goto page Previous 1, 2, 3, 4 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.