Ray's World
Ray's World

Look for ebe on SourceForge, then GitHub

My site on SourceForge was down almost a week and in the interim I made a backup on GitHub. My plan is to use SourceForge as the primary site and GitHub as the backup. It is a little more convenient to download individual files from SourceForge.

To install ebe on Linux or OS X, go to . https:sourceforge.net/projects/qtebe/files/Installer . The general process is to download install_ebe.sh and then do "sh ./install_ebe.sh". This will download the required tools, download the source code and build ebe. To download install_ebe.sh, click on its name in the list and on the next page click on the "Raw" button. OS X users should read README.OS_X.

To install ebe on Windows go to . https:sourceforge.net/projects/qtebe/files/Windows . You will need to download and execute the ebe setup program and either the 32 or 64 bit tools setup program. To download a .exe file, click on the file name and on the next page click on the "Raw" button. Updates to the ebe setup program are more frequent and can be done without re-executing the tools installation.

cute cyclesIntroduction to 64 Bit Assembly Languageassembly book cover
Programming for Linux and OS X

The era of 64 bit computing is now.  You know your computer will run faster with more RAM than 4 GB and a 32 bit computer is limited to 4 GB.  With a 64 bit CPU and a 64 bit operating system you can have more RAM - more RAM for programs and more RAM for buffer cache.  Your computer will run faster.

In addition to allowing your computer use more RAM, running your PC in 64 bit mode will enable the use of more registers.  A PC running in 32 bit mode has 8 registers - with 2 of them tied up in the stack pointer and frame pointer.  In 64 bit mode the CPU has 8 additional general purpose registers and 8 additional floating point registers.  These additional registers allow compilers to perform better optimization and all function parameters to be placed in registers rather than being pushed on the stack.  These new registers also help your computer run faster.

"Introduction to 64 Bit Assembly Language Programming for Linux and OS X" teaches only 64 bit programming.  You might find other books which teach 16 bit programming and 32 bit programming with a dash of 64 bit programming.  In 16 bit mode the assembly programmer uses segment registers routinely.  There are still segment registers in 64 bit mode, but they are not generally used in assembly programming.  It is my belief that the 64 bit mode (x86-64) is easier to cope with than either 16 bit or 32 bit mode.  There are some extra instructions, but the basics are generally simplified.  The additional registers make programming easier.  With fewer registers there is a greater need to store  intermediate data in memory.  With 16 general purpose registers it requires a fairly complex algorithm to strain the register capacity.

This is the third edition of my assembly book.  The primary changes to the book are the inclusion of OS X support for assmebly programming and the discussion of the Qt version of ebe.  Examples in the book are frequently illustrated using windows from ebe.  I suggest downloading the source code for the book and stepping through the programs with ebe as you read the book.  Ebe is an acronym for "Easy Beginner Environment" and targets teaching assembly language.  It is easy to use and makes learning assembly language easier.

source code

ebe iconebe - Integrated Development Environment

Ebe is an integrated development environment designed to make it easier to write and debug assembly language programs.  To the right is an example of the source window in ebe with a short assembly program.  The red background on the line number for line 13 indicates that there is a breakpoint on line 13.  The light blue background on line 15 indicates that line 15 is the next instruction to execute while debugging.

Ebe supports programming in Assembly, C, C++ and Fortran.  When you click green alien icon ebe runs the appropriate compiler or assembler and then starts running your program using the gdb debugger.  You use the icons to the right of the alien to do the next instruction, step into a function, continue or stop debugging.  You can view the registers in a register window and program variables in a data window.  Ebe makes is easy for you to define variables based on labels in the code or addresses contained in registers.

The latest ebe includes growing support for different languages including Arabic, Chinese, French, Hindi, Portuguese, Russian, Spanish and Swedish.  The Arabic, French, Hindi, Spanish and Swedish translations have been reviewed by people who speak those languages.  The rest are from Google Translate and may be poor.  Help is needed from around the world to improve the accessibility of ebe.

The ebe documentation is running a little behind the development of the code.  There is a brief tutorial which will be expanded "Real Soon Now".

     Ray Seyfarth