DOC Added license and acknowledgements

This commit is contained in:
Elf M. Sternberg 2018-04-25 21:03:02 -07:00
parent 323e46ade1
commit 3b1f0e9a3d
2 changed files with 66 additions and 2 deletions

21
LICENSE.txt Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018 Elf M. Sternberg
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -5,12 +5,32 @@ reboot my assembly language skills, this time in X86 and X86_64. ("This
time" because the last time I wrote assembly language I was writing for time" because the last time I wrote assembly language I was writing for
the Motorola 68000 line.) the Motorola 68000 line.)
The tutorial I based this off of is at http://asmtutor.com/ The tutorial I based this off of is at http://asmtutor.com/ The source
code for the original tutorial, as well as the website, is by GitHub
contributor Daniel Givney at
[Assembly Tutorials](https://github.com/DGivney/assemblytutorials).
I'll see if I can't scrape together some other, more esoteric examples
in the future.
## Getting Started ## Getting Started
There's a Makefile. It has a nice help¹. There's a Makefile. It has a nice help¹.
You will need to be running Linux on an Intel platform. These lessons
do not apply to ARM chips like those on the Raspberry Pi (although it
would be super cool if they did!).
You will need a copy of [nasm](https://www.nasm.us/), the Netwide
Assembler, the most popular assembler currently in widespread use.
There are other assemblers, such as GAS (Used by the GNU GCC project),
MASM (from Microsoft), and so forth, but NASM is popular,
well-understood, and well-supported. You will also need a linker; the
Makefile assumes you have the linker suppled with GNU Binutils. On
Ubuntu-based platforms this comes with the `build-essentials` package.
If you have a different distribution, consult your archive. If you can
compile a **C** program, you're fine.
## Lesson 2 ## Lesson 2
There is no Lesson 1. Okay, there *is*, but I didn't do it. While I There is no Lesson 1. Okay, there *is*, but I didn't do it. While I
@ -114,10 +134,33 @@ other combination.
More to come... I hope... More to come... I hope...
## Authors
Yours truly! Elf M. Sternberg <elf.sternberg@gmail.com>.
## License
Daniel Givney does not specify a license for his code, but it is his
copyright. I did type in, modify, and write these examples on my own (I
find that I only *learn* things in my brain if they go through my
fingers, so I rarely cut-and-paste anything), and unless Daniel has a
complaint, I'm tagging my code with the MIT License. See the
`LICENSE.txt` file for the full details.
## Acknowledgements
* Daniel Givney, of course.
* [The NASM Documentation](https://www.nasm.us/doc/) is very well-written!
* [Nayuki](https://github.com/nayuki) has added much to my understanding
* [David Evans](http://www.cs.virginia.edu/~evans/cs216/guides/x86.html)
helped with my understanding of syntax and register use.
* [Ray Toal](http://cs.lmu.edu/~ray/notes/nasmtutorial/)'s notes on NASM
are also useful.
--- ---
Footnotes! Footnotes!
¹ I firmly believe that no command, typed blindy, should modify the ¹ I firmly believe that no command, typed blindy, should modify the
contents of your hard drive. Make takes target arguments, and you contents of your hard drive. `Make` takes target arguments, and you
should specify the targets you want built. So `make` by itself only should specify the targets you want built. So `make` by itself only
issues help. issues help.