wjy + assembly   67

x86 Assembly Language Programming with Ubuntu
x86-64 Assembly Language Programming with Ubuntu
programming  asm  assembly  book  linux  ubuntu 
september 2018 by wjy
simon987/Much-Assembly-Required: Assembly programming game
Program the 8086-like microprocessor of a robot in a grid-based multiplayer world. The game is web based so no installation is required. In its current state, players can walk around the game universe and collect Biomass blobs & Iron/copper ore using the online code editor.
game  asm  assembly  java 
january 2018 by wjy
x86 Assembly - Wikibooks, open books for an open world
This book covers assembly language programming for the x86 family of microprocessors. The objective is to teach how to program in x86 assembly, as well as the history and basic architecture of x86 processor family.

When referring to x86 we address the complete range of x86-based processors (since the original Intel 8086 in 1978). This includes:

IA-32 assembly, also commonly referred to as x86-32 assembly (Intel architecture 32-bit, since the Intel 80386), a 32-bit extension of the original 16-bit Intel x86 processor architecture (used in Intel 8086 - 80286 CPUs). IA-32 has full backwards compatibility with the 16-bit x86.
x86-64, also called the AMD64 or AMD 64-bit extension, backwards compatible with 32-bit code without performance loss.
Intel 64, previously named IA-32e or EM64T, almost identical to x86-64.
Throughout the book these terms may be used interchangeably when appropriate. A special notice will be given when covering 16-bit, 32-bit or 64-bit architectures and on any limitations to limit confusion.
x86  asm  assembly  reference  book  wikibook 
november 2017 by wjy
Fresh IDE project - Introduction
Fresh is a visual assembly language IDE with built-in FASM assembler.

The main goal of Fresh is to make programming in assembly as fast and efficient as in other visual languages, without sacrificing the small application size and the raw power of assembly language.

Because Fresh is the logical continuation of the FASM project in the area of visual programming, it is perfectly compatible with FASM and you can use all your knowledge about FASM to program in Fresh.

Of course, you can use Fresh not only for Windows programming, but also to create programs for any OS that FASM supports - DOS, Linux, FreeBSD, BeOS, MenuetOS - the same way as you do this in FASM.

Currently, the development is shifted mainly on FreshLib, that will be the base for the next generation of Fresh IDE 3 - highly portable IDE with advanced visual editing architecture, that to provide OS independence for the developed applications.
linux  asm  assembly  windows  ide 
september 2017 by wjy
Snowman is a native code to C/C++ decompiler, see the examples of generated code.
c++  assembly  decompiler  c 
july 2017 by wjy
Guide to x86 Assembly
This guide describes the basics of 32-bit x86 assembly language programming, covering a small but useful subset of the available instructions and assembler directives. There are several different assembly languages for generating x86 machine code. The one we will use in CS216 is the Microsoft Macro Assembler (MASM) assembler. MASM uses the standard Intel syntax for writing x86 assembly code.

The full x86 instruction set is large and complex (Intel's x86 instruction set manuals comprise over 2900 pages), and we do not cover it all in this guide. For example, there is a 16-bit subset of the x86 instruction set. Using the 16-bit programming model can be quite complex. It has a segmented memory model, more restrictions on register usage, and so on. In this guide, we will limit our attention to more modern aspects of x86 programming, and delve into the instruction set only in enough detail to get a basic feel for x86 programming.
x86  asm  assembly  programming  guide  course 
january 2017 by wjy
Intel XED
The X86 Encoder Decoder (XED), is a software library (and associated headers) for encoding and decoding X86 (IA32 and Intel64) instructions. The decoder takes sequences of 1-15 bytes along with machine mode information and produces a data structure describing the opcode, operands, and flags. The encoder takes a similar data structure and produces a sequence of 1 to 15 bytes. Disassembly is essentially a printing pass on the data structure.
compiler  x86  asm  assembly  software  library  intel  cpu 
december 2016 by wjy
Franc[e]sco's Gopherspace: /programming/c_without_standard_library_linux.txt
There are many tutorials on the web that explain how to build a
simple hello world in C without the libc on AMD64, but most of them
stop there.

I will provide a more complete explanation that will allow you to
build yourself a little framework to write more complex programs.
The code will support both AMD64 and i386.

Major credits to http://betteros.org/ which got me into researching
libc-free programming.

Why would you want to avoid libc?
- Your code will have no dependencies other than the compiler.
- Not including the massive header files and not linking the
standard library makes compilation faster. It will be nearly
instantaneous even for thousands of lines of code.
- Executables are incredibly small (the http mirror server for my
gopherspace is powered by a 10kb executable).
- Easy to optimize for embedded computers that have very limited
- Easy to port to other architectures as long as they are
documented, without having to worry whether the libs you use
support it or not.
- Above all, it exposes the inner workings of the OS, architecture
and libc, which teaches you a lot and makes you more aware of
what you're doing even when using high level libraries.
- It's a fun challenge!

I might not be an expert yet, but I will share my methods with you.

For now this guide is linux-only, but I will be writing a windows
version when I feel like firing up a virtual machine.
programming  linux  assembly  c  stdlib  tutorial  embedded 
november 2016 by wjy
Zachtronics | TIS-100
TIS-100 is an open-ended programming game by Zachtronics, the creators of SpaceChem and Infinifactory, in which you rewrite corrupted code segments to repair the TIS-100 and unlock its secrets. It’s the assembly language programming game you never asked for!
programming  game  assembly 
october 2016 by wjy
HeavyThing x86_64 assembler library | 2 Ton Digital
GPLv3 licensed, commercial support available Easy to use, loads of examples Builtin code profiler w/ user interface Native VDSO support Full Unicode support Native 32 bit or 16 bit strings Correct double to string and vs. handling Very fast user-friendly epoll implementation Very fast big integers Full text user interface components and effects Very fast zlib implementation Very fast TLS 1.2 client/server implementation Very fast SSH2 client/server implementation Software and hardware AES SHA512,SHA384,SHA256,SHA160,MD5 HMAC, PBKDF2, scrypt, HMAC_DRBG Very fast web client/server implementation ABI compliant
tls  ssh  x8664  asm  assembly  library 
july 2015 by wjy
rwasa | 2 Ton Digital
rwasa is our full-featured, high performance, scalable web server designed to compete with the likes of nginx. It has been built from the ground-up with no externel library dependencies entirely in x86_64 assembly language, and is the result of many years' experience with high volume web environments. In addition to all of the common things you'd expect a modern web server to do, we also include assembly language function hooks ready-made to facilitate Rapid Web Application Server (in Assembler) development.
webserver  http  asm  assembly  performance 
july 2015 by wjy
MenuetOS is a pre-emptive, real-time and multiprocessor Operating System in development for the PC written entirely in 32/64 bit assembly language. Menuet64 is released under License and Menuet32 under GPL. Menuet supports 32/64 bit x86 assembly programming for smaller, faster and less resource hungry applications.
asm  opensource  os  operatingsystem  assembly 
may 2015 by wjy
nemasu/asmttpd · GitHub
Web server for Linux written in amd64 assembly. Features: Multi-threaded. No libraries required ( only 64-bit Linux ). Very small binary, under 6 KB. Quite fast. What works: Serving files from specified document root. 200, 206, 404, 400, 413, 416 Content-types: xml, html, xhtml, gif, png, jpeg, css, js, and octet-stream. Planned Features: Directory listing. HEAD support.
server  http  assembly  webserver 
may 2015 by wjy
x86 Disassembly - Wikibooks, open books for an open world
Ever wonder what the relationship was between the C programming language, Assembly Language, and machine code on the x86 family of microprocessors? Learn the art of disassembly and reverse engineering on the x86 platform with the x86 Disassembly wikibook!
assembly  x86  programming  asm  books  ebooks  wiki  disassembly 
april 2015 by wjy
NESHLA: The High Level 6502 Assembler for the Nintendo Entertainment System
NESHLA is an assembler for the Nintendo NES which gives the features of high level languages such as C without sacrificing any efficiency or speed. It structures and simplifies coding the NES, while still using assembly language. Compilers are inefficient for low end systems such as the NES. Even with optimizers, they would never produce code for fast action games or capable of tapping deep into the NES. It's the best of both worlds!
asm  nes  assembly  programming  assembler  development  game 
december 2014 by wjy
The Art of Assembly Language
pdf  book  assembly  programming  asm 
july 2014 by wjy
dynasm - DynASM with Lua mode
This is a modified version of DynASM that allows generating, compiling, and running x86 and x86-64 assembly code directly from Lua. It also exposes the DynASM assembler and linker to be used as Lua modules.
dynasm  lua  x86  assembly  asm 
june 2014 by wjy
x86_64 Assembly Language and Shellcoding on Linux
This course focuses on teaching the basics of 64-bit assembly language for the x86_64 family of processors on the Linux platform and applying it to Infosec. Once we are through with the basics, we will look at writing shellcode, encoders, decoders, crypters and other advanced low level applications.
resource  course  x86  x86_64  assembly  language  programming  linux  asm 
march 2014 by wjy
Easy 6502 by skilldrick
Then why 6502? Why not a useful assembly language, like x86? Well, I don’t think learning x86 is useful. I don’t think you’ll ever have to write assembly language in your day job - this is purely an academic exercise, something to expand your mind and your thinking. 6502 was originally written in a different age, a time when the majority of developers were writing assembly directly, rather than in these new-fangled high-level programming languages. So, it was designed to be written by humans. More modern assembly languages are meant to written by compilers, so let’s leave it to them. Plus, 6502 is fun. Nobody ever called x86 fun.
assembly  programming  learning  cpu  6502  asm  interactive  ebook  online  tutorial 
february 2014 by wjy
yasp is a fully functional web-based assembler development environment, including a real assembler, emulator and debugger. The assembler dialect is a custom which is held very simple so as to keep the learning curve as shallow as possible. It also features some hardware-elements (LED, Potentiometer, Button, etc.). The goal of this project is to create an environment in which students can learn the assembly language so that they understand computers better. Furthermore it allows them to experiment without the fear of breaking something. The original project team of yasp consists of Robert Fischer and Michael "luto" Lutonsky. For more information take a look at the about-section in the IDEs menu. yasp started out as a school project and was then later, in early 2014, released into public as GPL.
assembly  programming  learning  coding  emulator  interactive  asm  !cool 
february 2014 by wjy
Javascript virtual machine is one instruction set machine to parse and execute an assembly like code.
js  javascript  virtualmachine  vm  assembly  !cool 
december 2013 by wjy
decac - A higher-level assembly language - Google Project Hosting
Deca is a language designed to provide the advanced features of sophisticated, high-level programming languages while still programming as close as possible to the bare metal. It brings in the functional, object-oriented, and generic programming paradigms without requiring a garbage collector or a threading system, so programmers really only pay in performance for the features they use.
dca  deca  assembly  programming  language 
january 2012 by wjy

related tags

!cool  8bit  analysis  archive  arm  article  asm  assembler  assembly  awesome  book  books  boot  bootloader  bootstrap  c  c++  challenge  cheatsheet  coding  collaboration  compiler  compilers  compsci  cool  corkami  course  cpu  dca  deca  decompiler  demo  development  disassembler  disassembly  docs  documents  dynasm  ebook  ebooks  embedded  emulator  example  experiments  game  gamedev  gamehacking  games  gcc  gdb  guide  hackernews  hacking  hardware  history  hn  howto  http  ide  intel  interactive  intro  java  javascript  jit  js  kernel  language  learning  library  linux  lowlevel  lua  luajit  mbr  mips  nasm  nes  newline  node.js  nodejs  ocaml  online  opensource  operatingsystem  os  pdf  PE  performance  programing  programming  raspberrypi  reference  resource  resources  reverseengineering  security  server  software  ssh  stdlib  tls  tools  tutorial  ubuntu  ukraine  virtualmachine  vm  web  webapp  webserver  wiki  wikibook  windows  x64  x86  x86_64  x8664 

Copy this bookmark: