Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Assembly instructions are architecture specific, so you will find their exact behaviour defined in the documentation for that architecture. If you are just learning, I suggest you start with a simple RISC architecture, like the one used by Atmel 8 bit avr chips.</p> <p>"Lower" than assembly instructions are "opcodes" (Operation Codes) which are what assembly instructions are "assembled" into (amongs few other things done by modern assemblers). These are highly specific to the architecture, and have to do with the way the cpu will treat the argument(s) (if any) of the instruction, for example, the argument may be an offset from the current addresss (relative) or it may be a full address anywhere in memory or it may be a literal value or something else entirely. Since at some point, we need to boil down the instruction into the specific version where our arguments are treated as we want, instructions which take arguments will exists in different "versions" depending on the kind of arguments they can take (which modes of "addressing"). One example of an instruction which exist in several versions (supports several addressing modes) is the LDA in the beloved 6502. ( <a href="http://www.6502.org/tutorials/6502opcodes.html#LDA" rel="nofollow">http://www.6502.org/tutorials/6502opcodes.html#LDA</a> ). So basically, the lower level than assembly would be to simply write opcodes into memory, this is totally doable and will probably get you quite intimate with your chosen chip.</p> <p>It is widely different which addressing modes are supported by which instructions in which architectures.</p> <p>If you want "lower" level than that (ie, how the actual machine code is executed on the gates of the chip) you would need to research a chip which is well-documented and reverse engineered, something like <a href="http://visual6502.org/" rel="nofollow">http://visual6502.org/</a> may be of help.</p> <p>On the topic of 6502, as Olivier Dulac mentions, skilldricks easy6502 project is also very helpful in learning and understanding (6502) assembly programming, addressing modes and opcodes. <a href="http://skilldrick.github.io/easy6502/" rel="nofollow">http://skilldrick.github.io/easy6502/</a></p> <p>Note that getting started with x86, which is a CISC architecture can be quite daunting for beginners and even for RISC programmers.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload