flat assembler
Message board for the users of flat assembler.

Index > Projects and Ideas > My AJAX driven x86 Assembly Reference

Goto page 1, 2  Next
Author
Thread Post new topic Reply to topic
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
In an attempt to increase my knowledge of Javascript, PHP, and assembly, I figured I would write an Assembly reference.

Here's the link: http://mattst88.com/programming/asmref/

I don't know why it doesn't work in Internet Explorer. It even partially works by displaying the number of instructions. I don't really care either.

I've only got 85 instructions currently, but I'd like to add a lot more. I want to get all the MMX/SSE/3DNow instructions listed before I begin adding all the other general instructions.

Tell me if the number of instructions for each is correct:

MMX - 47
MMX+ - ?
3DNow! - 21/22 depending on if you classify prefetch and prefetchw as separate instructions. (Something about prefetchw didn't exist in the original 3DNow! instructions)
Extended 3DNow! - 19 (Why does CPUID.com show 24?)
SSE(1) - 70
SSE2 - 144
SSE3 - 13
SSSE3 - 16
SSE4 - somewhere around 50

If you like the site/reference/idea I'd very much appreciate it if you'd check out one of the ads on the page. I've put a lot of time into the site so it'd be great to get a little bit back Smile

If anyone is interested in contributing to the reference, here's how you can:
All instructions are contained in their own files which are named like this:
instruction_name.type.requires.ref where instruction_name is its name, type is the type of instruction, and requires is SSE/MMX etc, ref is just the extension I chose.

List of types:
movement - DataMovement
convert - Type Conversion
iarithmetic - Integer Arithmetic
bcd - Binary Coded Decimal Arithmetic
logical - Logical
control - Control Transfer
io - I/O
string - String
flag - Flag Control
conditional - Conditional
misc - Miscellaneous
fparithmetic - Floating Point Arithmetic

List of requires:
none - No requirements
fpu - FPU
mmx - MMX
sse1 - SSE1
sse2 - SSE2
sse3 - SSE3
ssse3 - SSSE3
sse4 - SSE4
3dnow - 3DNow!
ext3d - Extended 3DNow!
64 - 64-bit

All the file should contain is a description of the instruction with no trailing newline. Here's the file for the bsr instruction:

bsr.logical.none.ref:
Code:
Searches for the Most Significant Set Bit.    


Also, if instructions, such as SSE2/3 work on MMX registers, you can add MMX into its name to have it show in the reference. For instance paddq's filename is 'paddq.iarithmetic.mmx.sse2.ref'.

Anyway, I hope you find it useful, click an ad, and email me (mattst88 _at_ g mail dot com) some reference files to help the page grow.

Btw, I have all SSE3 instructions listed since I know CPUID.com does not. Smile

_________________
My x86 Instruction Reference -- includes SSE, SSE2, SSE3, SSSE3, SSE4 instructions.
Assembly Programmer's Journal


Last edited by mattst88 on 12 Jul 2007, 00:43; edited 1 time in total
Post 27 Nov 2006, 20:44
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
have you seen MazeGen's reference? He is going to have it completed soon.
Post 27 Nov 2006, 20:56
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
I have not. I'll have to go find it now Smile

Edit: Oh yes I have Razz It's more complicated than what I'm looking to make though. I just want something that I can quickly sift through. If I need to look up the instruction more in depth I'll just use the Intel Manuals.
Post 27 Nov 2006, 21:01
View user's profile Send private message Visit poster's website Reply with quote
LocoDelAssembly
Your code has a bug


Joined: 06 May 2005
Posts: 4633
Location: Argentina
LocoDelAssembly
Where Mazegen's reference is? I searched for his last post but he has no home page at his profile Sad
Post 27 Nov 2006, 21:20
View user's profile Send private message Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
Post 27 Nov 2006, 21:35
View user's profile Send private message Visit poster's website Reply with quote
Goplat



Joined: 15 Sep 2006
Posts: 181
Goplat
cvtss2sd wasn't implemented until SSE2. Also I would consider pabs* and psign* to be arithmetic, not logical.
Post 28 Nov 2006, 03:10
View user's profile Send private message Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
Fixed. Thanks for the heads up Smile
Post 28 Nov 2006, 15:31
View user's profile Send private message Visit poster's website Reply with quote
rugxulo



Joined: 09 Aug 2005
Posts: 2341
Location: Usono (aka, USA)
rugxulo
Post 30 Nov 2006, 07:39
View user's profile Send private message Visit poster's website Reply with quote
OzzY



Joined: 19 Sep 2003
Posts: 1029
Location: Everywhere
OzzY
Looks very usefull mattst88!!
I like how it's organized by sections.
Nice work!

Btw, how did you learn AJAX? I'm thinking about learning it too...
Post 03 Dec 2006, 03:12
View user's profile Send private message Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
I bought the O'Reilly Javascript book, and I read a few AJAX tutorials.
Post 03 Dec 2006, 23:54
View user's profile Send private message Visit poster's website Reply with quote
MichaelH



Joined: 03 May 2005
Posts: 402
MichaelH
It's weird to hear people use the term AJAX as I was doing XMLHTTP pre 2000 (I think, seems a long time ago anyway) when Msxml.XMLHTTP first came out and then five years later I here the term AJAX, this "new way" of doing things. I guess all you need is a catchy name for your product and you too can be famous.

Anyway, I hope you consider using JSON http://en.wikipedia.org/wiki/JSON for your data transfers as xml is complete bloat! Or better yet, come up with a scheme that compiles natively with fasm (or use a macro) that can be used in javascript as well similar to JSON. Wouldn't that be great for data transfers especially when you consider Thomasz has just released a fasm dll, maybe it's time we all thought about a assembler fashioned data transfer scheme.
Post 04 Dec 2006, 22:07
View user's profile Send private message Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
Added a ton more instructions. For the most part SSE1 and SSE2 are complete. I know that SSE3, SSSE3, 3DNow!, and Extended 3DNow! are complete. I think MMX is complete, but it's hard to tell with all the overlap with later SSE instructions.

See if you see any mistakes or can tell me what instructions I'm missing.
Post 20 Dec 2006, 21:16
View user's profile Send private message Visit poster's website Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
So I guess my reference isn't that useful, judging from the feedback.
Post 05 Feb 2007, 22:10
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
rather judge from site hits. people often don't give feedback.

Personally, i think you would need a lot more data in the reference to be really useful.
Post 05 Feb 2007, 22:40
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
What type of data would you recommend adding? Just more instructions? Or add something?
Post 06 Feb 2007, 00:14
View user's profile Send private message Visit poster's website Reply with quote
vid
Verbosity in development


Joined: 05 Sep 2003
Posts: 7106
Location: Slovakia
vid
for example flags which are modified / cleared / set / undefined / tested, allowed argument combinations, etc...
Post 06 Feb 2007, 01:03
View user's profile Send private message Visit poster's website AIM Address MSN Messenger ICQ Number Reply with quote
Madis731



Joined: 25 Sep 2003
Posts: 2145
Location: Estonia
Madis731
http://en.wikipedia.org/wiki/SSE4
SSE4 will *finally* put population count into hardware and CRC32 Very Happy
I like it already...I wonder if string comparison will be even faster than on
Core 2 with these new instructions - just wow Smile

and keep your page updated - it helps many people - cpuid.com hasn't updated for years, I even e-mailed these guys but there was no response.
For example check out where SSE3 links - to the index Smile and only SSE has
got some definitions, others are just mnemonics.
Post 07 Feb 2007, 08:49
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
I've optimized the Instruction Reference a good bit. It also works in IE7 now.

Btw, it's got 305 instructions and gets more fairly often.
Post 15 May 2007, 18:32
View user's profile Send private message Visit poster's website Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
Just changed over from XML data exchange to JSON. The filesize is almost identical (JSON is about 1 KB smaller) but the GET (server generating the full instruction database + download time) is around 40~50 milliseconds faster.

Both are things we assembly programmers should love to hear Smile
Post 16 May 2007, 02:35
View user's profile Send private message Visit poster's website Reply with quote
mattst88



Joined: 12 May 2006
Posts: 260
Location: South Carolina
mattst88
SSE4.1 instructions added. SSE4.2 instructions coming shortly.
Post 07 Jun 2007, 00:00
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2  Next

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2019, Tomasz Grysztar.

Powered by rwasa.