Documente Academic
Documente Profesional
Documente Cultură
Instruções sobre registradores orientadas a bits Instruções sobre registradores orientadas a bytes
Mneumônico, Descrição Mneumônico, Descrição
operandos operandos
BCF f,b Limpa bit em f (b ← 0) ADDWF f,d Soma o W com f
BSF f,b Seta bit em f (b ← 1) ANDWF f,d Operação lógica E de W com f
BTFSC f,b Testa bit em f, pula instrução se 0 CLRF f f ←0
BTFSS f,b Testa bit em f, pula instrução se 1 CLRW - W←0
Instruções literais e expressões de controle COMF f,d Complemento de f
Mneumônico, Descrição DECF f,d Decrementa f
operandos DECFSZ f,d Decrementa f, pula instrução se 0
ADDLW k Soma literal com W INCF f,d Incrementa f
ANDLW k Operação lógica E de literal com W INCFSZ f,d Incrementa f, pula instrução se 0
CALL k Chama subrotina IORWF f,d Operação lógica OU de W com f
CLRWDT - Limpa temporizador WATCHDOG MOVF f,d Move f
GOTO k Desvio para endereço MOVWF f Move W para f
IORLW k Operação lógica OU, literal com W NOP - Não faz nada
MOVLW k Move literal para W RLF f,d Rotaciona para esquerda com carry
RETFIE - Retorna de interrupção RRF f,d Rotaciona para direita com carry
RETLW k Retorna com literal em W SUBWF f,d Subtrai W de f
RETURN - Retorna de subrotina SWAPF f,d Inverte nibbles (4 bits) de f
SLEEP - Vai para modo standby XORWF f,d OU exclusivo de W com f
SUBLW k Subtrai W de literal
XORLW k OU exclusivo de W com literal
Instruções do MIPS
Sintaxe Comentário Sintaxe Comentário
Lb Rdest, Imm16(Rsrc) load byte j address28 jump (absolute addr)
Lw Rdest, Imm16(Rsrc) load word jr Rsrc jump register
Transferência de informação
branch inconditional
sub Rdest, Rsrc1, Rsrc2 subtract (with overflow) b address18/32
(relative addr)
subu Rdest, Rsrc1, Rsrc2 subtract (without overflow) b<cnd> Rsrc1, Rsrc2, br. on <cnd> = [gt, ge,
mult Rsrc1, Rsrc2 multiply address18/32 lt, le] (relative addr)
multu Rsrc1, Rsrc2 unsigned multiply b<cnd>u Rsrc1, Rsrc2, br. on <cnd> = [gt, ge,
div Rsrc1, Rsrc2 divide address18/32 lt, le] uns (relative addr)
divu Rsrc1, Rsrc2 unsigned divide rfe return from exception
Exceç
ão
Diretivas
.align n Alinha o próximo dado em um limite de 2n bytes. Por exemplo, .align 2 alinha o próximo valor em um limite
de word. .align 0 desativa o alinhamento automático das diretivas .half, .word, .float e .double até a
próxima diretiva .data ou .kdata.
.ascii str Armazena a string str na memória, mas não a termina com nulo.
.asciiz str Armazena a string str na memória e a termina com nulo.
.byte b1,..., bn Armazena os n valores em bytes sucessivos da memória.
.data <end> Itens subseqüentes são armazenados no segmento de dados. Se o argumento opcional end estiver
presente, os itens subseqüentes são armazenados a partir do endereço end.
.double d1, ..., Armazena os n números de precisão dupla em ponto flutuante em locais de memória sucessivos.
dn
.float f1,..., fn Armazena os números de precisão simples em ponto flutuante nos locais de memória sucessivos.
.globl sym Declara que o rótulo sym é global e pode ser referenciado a partir de outros arquivos.
.half h1, ..., hn Armazena as n quantidades de 16 bits em halfwords sucessivas da memória.
.space n Aloca n bytes de espaço no segmento atual (que precisa ser o segmento de dados no SPIM).
.text <end> Itens subseqüentes são colocados no segmento de texto do usuário. No SPIM, esses itens só podem ser
instruções ou palavras (ver a diretiva .word a seguir). Se o argumento opcional end estiver presente, os
itens subseqüentes são armazenados a partir do endereço end.
.word w1,..., wn Armazena as n quantidades de 32 bits em palavras de memória sucessivas.