Binary Program Pattern

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram CDF Player or other Wolfram Language products.

Requires a Wolfram Notebook System

Edit on desktop, mobile and cloud with any Wolfram Language product.

The raw code in assembly language does not look like a high-level computer language (such as C, Lisp, Pascal, or even Mathematica). The computer processor uses machine language, which is a binary code of ones and zeros.

[more]

This Demonstration gives the machine language version of a C program compiled for the BlackBerry PlayBook. The program writes a simple square on the screen using the OpenGL graphic library, and has 3802 lines and 1276 distinct instructions/lines/patterns.

For these instructions/lines/patterns, the binary number 0 is represented in yellow and the number 1 is represented in orange. With the position slider you can move through the in-order 3802 lines of the program, 32 instructions lines at a time.

Some lines of instructions are repetitive and others appear just one time in the program list. These lines are the 1276 patterns chooseable by the pattern selector.

Assembly language frequently has a one-to-one relationship from its mnemonics to the binary code (opcodes). One example is the instruction "mov r1, #1", which moves the value 1 to the register r1. In binary, the instruction is "111000111010 00000001 000000000001". The 32-bit binary numbers can be split into three blocks as follows:

1. command name;

2. register identification;

3. value.

Register machines are the computational model closest to microprocessor functionality and assembly language.

[less]

Contributed by: Daniel de Souza Carvalho (July 2012)
Open content licensed under CC BY-NC-SA


Snapshots


Details

detailSectionParagraph


Feedback (field required)
Email (field required) Name
Occupation Organization
Note: Your message & contact information may be shared with the author of any specific Demonstration for which you give feedback.
Send