|
|
|
Exemplo de Aplica das Instruções
Assembly
Instrução
¡@ |
Linguagem equivalente em
C
¡@ |
-------------
¡@ |
---------------------------
¡@ |
mov rx, ry
¡@ |
rx =
ry // Move o conteúdo do reg. ry para rx
¡@
|
mov rx, ry lsl #5
¡@ |
rx = ry << 5 // Realiza um Shift Left
Lógico
¡@
|
mov rx, ry lsr #6
¡@ |
rx = ry >> 6 // Realiza um Shift
Right Lógico
¡@ |
mov rx, #0x12
¡@ |
rx = 0x12 // Move x12 para rx
¡@ |
mov rx, #0x21, 28
¡@ |
//rx = 0x21 rotate
right 28 bits
¡@ |
str rx, [ry, #0x12]DWORD*ry
¡@ |
//ry[0x12/4] = rx
¡@ |
¡@ |
// Armazena o rx na posição de memória ry +
x12
¡@ |
str rx, [ry, rz]DWORD *ry
¡@ |
//ry[rz/4] = rx
¡@ |
¡@ |
// Armazena rx na posição de memória ry +
rz
¡@ |
ldr
rx, [ry], -rz
¡@ |
//ry -= rz; rx = *ry
¡@ |
cmp rx, ry
¡@ |
//Compara rx com ry, e seta o flags
condicional
¡@ |
| ¡@ |
//adequadamente, por exemplo, Z = (rx ==
ry)
¡@ |
cmp rx, #0x12
¡@ |
//Compara rx com 0x12
¡@ |
add rx, ry, #0x12
¡@ |
//rx = ry + 0x12
¡@ |
sub rx, ry, #0x12
¡@ |
//rx = ry ¡V 0x12
¡@ |
mul
rx, ry, #0x12
¡@ |
//rx = ry * 0x12
¡@ |
orr
rx, ry, #2
¡@ |
//rx = ry | 2
¡@ |
and
rx,
ry, #2
¡@ |
//rx = ry & 2
¡@ |
bic
rx, ry, #5
¡@ |
//rx = ry & ~5 // Bit Clear
¡@ |
bx
rx
¡@ |
//rx(); // Jump para o endereço que está em
rx
¡@ |
Voltar
|