Skip to content

Instantly share code, notes, and snippets.

@locks
Created February 9, 2009 02:30
Show Gist options
  • Save locks/60621 to your computer and use it in GitHub Desktop.
Save locks/60621 to your computer and use it in GitHub Desktop.
resumos (ARQCP)
Declaração de variáveis
var_long:: .long 12315
var_word:: .word 342
var_byte:: .byte 4
var_string:: .byte "afbad",0
.space.b <espaço>
var_vector:: .<long/word/byte> 2646,24,62476,246
.space.<l/w/b> <espaço>
var_matriz:: .<long/word/byte> 23425,245624525,245,2
.space.<l/w/b> <espaço>
.align <2,4>
Operações de comparação
OR
0 0 = 0
0 1 = 1
1 0 = 1
1 1 = 1
AND
0 0 = 0
0 1 = 0
1 0 = 0
1 1 = 1
XOR
0 0 = 0
0 1 = 1
1 0 = 1
1 1 = 0
Fórmula para índice de elemento de matriz
CABEÇALHO + INDICE_LINHA*NUMERO_LINHA + INDICE_COLUNA
Arquitecturas
Von Neumann
Harvard
Perifericos
memory mapped
portas Input/Output
interrupt
Registos processador
Program Counter - endereço de memória da instrução currente
Stack Pointer - endereço para pilha que contém endereços de (sub)rotinas
Acumulador - operações não permitidas por outros registos
Flags - sinalizam resultados, configurações/modos de funcionamento
Indice - apontador de memória que não stack/PC
Stack Machine
pilha (stack) em vez de registos.
notação postfix (RPN)
operações utilizam o topo da stack
8086
intel 4004
primeiro microprocessador
4 bits
8 bits
Registos 8086
AX - acumulador
BX - apontador de memória
CX - apontador para certas instruções
DX - sem uso especial/específico
SI (Source Index) - origem duma operação de manipulação de strings
DI (Destination Index) - destino duma operação de manipulação de strings
SP (Stack Pointer) - apontador para pilha. usado na chamada de sub-rotinas
BP (Base Pointer) - apontador para pilha. usado em linguagens que passam parâmetros através da pilha.
Flags 8086
CF (Carry Flag)
bit 0
activada quando operação aritmética gera um carry ou borrow
afectado por shifts ou rotates
manipulado através de
STC (set)
CLC (clear)
CMC (complement)
PF (Parity Flag)
bit 2
Modos de endereçamento
imediato - o próprio valor
directo - o endereço onde está o valor
indirecto - apontador pó endereço onde está o valor
indexado - deslocamento dentro do índice
MAR (memory access register) - endereço de memória onde guarda resultado da instrução
MDR (memory data register) - valor a ser usado
IR (instruction register) - (opcode da) instrução que está a decorrer
ALU (arithmetic logic unit) - executa as instruções
PC (Program Counter) - endereço da instrução corrente
Assembly
linguagem de baixo nível
assembler específico para cada processador
assembler transforma código em linguagem máquina
Pipeline
IF (instruction fetch)
ID (instruction decode)
OF (operand fetch)
EX (execute)
WB (writeback)
optimizado ao máximo pelos processadores RISC
acesso a memória só para I/O
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment