x86 asm: mov

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-06-03 00:00:00 +00:00
parent 39de6f6abf
commit 47b39a84c9
2 changed files with 52 additions and 26 deletions

View File

@@ -11742,23 +11742,20 @@ As a quick reminder, the fastest setups to get started are:
However, as usual, it is saner to build your toolchain as explained at: <<qemu-user-mode-getting-started>>.
The first example that you want to run for each arch is:
The first examples that you want to run for each arch are:
....
./run --userland userland/arch/<arch>/add.S
....
* how to move data between registers and memory
* how to add two numbers!
e.g.:
These examples are located at:
....
./run --userland userland/arch/x86_64/add.S
....
Sources:
* link:userland/arch/x86_64/add.S[]
* link:userland/arch/arm/add.S[]
* link:userland/arch/aarch64/add.S[]
* x86
** link:userland/arch/x86_64/add.S[]
** link:userland/arch/x86_64/mov.S[]
* arm
** <<arm-mov-instruction>>
** link:userland/arch/arm/add.S[]
** link:userland/arch/aarch64/add.S[]
These examples use the venerable ADD instruction to:
@@ -12288,15 +12285,7 @@ Bibliography: https://stackoverflow.com/questions/27147043/n-suffix-to-branch-in
Arch agnostic infrastructure getting started at: <<userland-assembly>>.
=== x86 userland assembly getting started
These are the main concepts and instructions that you should learn to be able to understand what is going on.
Once those are done, everything else left on userland is just to learn a huge list of instructions: <<x86-userland-assembly-instructions>>
=== x86 userland assembly instructions
==== x86 SIMD
=== x86 SIMD
History:
@@ -12309,15 +12298,15 @@ History:
* AVX2:2013
* AVX-512: 2016. 512-bit ZMM registers. Extension of YMM.
===== x86 SSE2
==== x86 SSE2
====== x86 addpd instruction
===== x86 addpd instruction
link:userland/arch/x86_64/addpd.S[]: `addps`, `addpd`
Good first instruction to learn SIMD: <<simd-assembly>>
====== x86 paddq instruction
===== x86 paddq instruction
link:userland/arch/x86_64/paddq.S[]: `paddq`, `paddl`, `paddw`, `paddb`