flat assembler
Message board for the users of flat assembler.

Index > Main > A Flat Assembler Codebase.

Author
Thread Post new topic Reply to topic
asmblr_88



Joined: 12 Jan 2023
Posts: 12
asmblr_88 19 Jun 2023, 14:24
Hello everyone, I am planning on building a community-driven website which will contain programs written primarily in x64 bit flat assembler.

There will be separate code bases for Linux, MenuetOS, and Microsoft, if anyone wishes to have one for other operating systems not listed here, feel free to ask.

The idea is to learn assembly step by step, starting with the smallest programs, incrementally growing to larger programs.

So far I have:

00. Enter_Exit
01. Exit_Success
02. Constants
03. Variables
04. Output
05. Input
06. String Interpolation
07. Mathematical Operations

I will also be working on algorithms as well.

As this is hopefully going to be a community driven project, I am hoping to be able to have code audited for best and correct programs, as well as commented.

I also want to create a section in the website for interviews of programmers as well, since it is sometimes hard to find interviews of programmers due to the programming interviews for jobs everywhere.

I would also like for anyone who writes the programs to get their credit, so similar to how contributors are credited on Learn X in Y minutes.

If anyone is interested in this project, how would you recommend the incremental steps of learning assembly programming? Which programs would you add after program 07 in a step-by-step fashion?

Or should I just create a new post in the tutorials and examples section in the flat assembler board forums? I will put what I have so far in there.

Or do I create a website to hold all the code organized into a repository?

I appreciate your input if you have any! Thanks and hope everyone has a great day!

_________________
asmblr_88
Post 19 Jun 2023, 14:24
View user's profile Send private message Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1590
Location: Toronto, Canada
AsmGuru62 19 Jun 2023, 19:46
What is "Interpolation"?
Is it like a string library with common operations, like search strings for parts or extract sub-strings and so on (insert/remove string parts, etc.)?
Post 19 Jun 2023, 19:46
View user's profile Send private message Send e-mail Reply with quote
Flier-Mate



Joined: 26 May 2023
Posts: 88
Flier-Mate 20 Jun 2023, 06:30
For No. 8, you can add File Manipulation (create new, open existing, file read /write).
Post 20 Jun 2023, 06:30
View user's profile Send private message Reply with quote
asmblr_88



Joined: 12 Jan 2023
Posts: 12
asmblr_88 20 Jun 2023, 09:23
AsmGuru62, I think you just made me realize something, and I feel kind of dumb about it. So regarding program 06. String Interpolation, the program that I wrote along with help from Flier-Mate and redsock is probably more like performs a string concatenation rather than interpolates the string.

Interpolating a string in my mind is to insert a processed variable or constant into a string.

For example in C we would:

printf("Hello, %s!", name);

It is formatting a string to contain processed information to print to the screen.

Please correct me if I am wrong as I am still learning! Much thanks to everyone!

Flier-Mate, that is a great idea! Thank you for the suggestion. I will work on it!

By the way any suggestions on storing this code in github or in the code examples section of the Fasm Board?

I feel like a website would be good because I would like to add algorithms and flowcharts, etc.

I already started building the website a while back, but I had to postpone it due to school exams. I will continue it soon.

I want to break these programs into drafts similar to Jeff Duntemann as he did in his book "Assembly Step-By-Step".
Post 20 Jun 2023, 09:23
View user's profile Send private message Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1590
Location: Toronto, Canada
AsmGuru62 20 Jun 2023, 14:18
I see.
So, it is formatting values into a string using different forms, like decimal or hexadecimal or another string.
Very useful in any library.
Post 20 Jun 2023, 14:18
View user's profile Send private message Send e-mail Reply with quote
asmblr_88



Joined: 12 Jan 2023
Posts: 12
asmblr_88 20 Jun 2023, 20:45
So I've written a structure of how the text file will look.

For each program, let's call them 'chapters' or modules. I don't know what to call them but they will be bunched with a few files.

1. Txt file : This file contains information about the program, in here you will find the algorithm, pseudocode, assembly code and their refined versions, all commented. Also there will be information on who wrote the particular program for the codebase, the date it was written, a short description of it's purpose, and giving credit to others who contributed to improving the program, noting how they helped and any advice that they have given regarding the program.

2. fasm file : This is the assembly code for the program. There can be more than one version if there are improvements to the original or the one before it, which will be noted with a version number.

NOTE: There will be two types of these files, the first will be commented and the other will be uncommented for those who wish to practice studying it, understanding it, and commenting it themselves to compare to the original.

I hope it will be helpful to anyone from beginner to advanced.


Description:
Download
Filename: enter_exit.txt
Filesize: 3.9 KB
Downloaded: 160 Time(s)


_________________
asmblr_88
Post 20 Jun 2023, 20:45
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< 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-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.