oicìliS ©| INSTRUÇÃO | OPERAÇÃO | USO |
| AAA | Ascii Adjust for Addition (Ajuste Ascii para Adição): Altera o conteúdo de AL para um decimal válido "unpacked". O nibble de ordem superior é zerado. | |
| AAD | Ascii Adjust for Division (Ajuste Ascii para Divisão): Usado antes da divisão de decimais válidos "unpacked". Multiplica AH por 10, adiciona o resultado em AL e depois zera AH. Esta instrução tem um comportamento não documentado. | |
| AAM | Ascii Adjust for Multiplication (Ajuste Ascii para Multiplicação): Usada após a multiplicação de dois números decimais "unpacked", esta instrução ajusta um número decimal "unpacked". O nibble de ordem superior de cada byte precisa ser zerado antes de se usar a instrução. Esta instrução também tem comportamento não documentado. | |
| AAS | Ascii Adjust for Subtraction (Ajuste Ascii para Subtração): Corrige o resultado de uma subtração de decimais "unpacked" em AL. O nibble de ordem superior é zerado. | |
| ADC | Add with Carry (Adição com Carry): Soma dois operandos binários e põe o resultado no destino. Se CF estiver setado, soma 1 ao resultado. | ADC destino, fonte |
| ADD | Arithmetic Addition (Soma Aritmética): Soma fonte e destino, repondo o valor original do destino. Ambos os operandos são binários. | ADD destino, fonte |
| AND | Logical And (E Lógico): Faz um E Lógico entre os dois operandos substituindo o destino com o resultado. | AND destino, fonte |
| ARPL (286+) | Adjusted Requested Privilege Level of Selector (Nível de Privilégio Ajustado Requisitado de Seletor): Compara os bits RPL do destino e da fonte. Se os bits RPL do destino são menores que os da fonte, os bits RPL do destino são igualados aos bits RPL da fonte e a flag zero é setada. Caso contrário, limpa a flag zero. | |
| BOUND | Array Index Bound Check (Checagem de Índice de Array): O índice do array no registrador fonte é checado com os limites máximo e mínimo da memória fonte. O primeiro word localizado no "limite" é o limite mínimo e o word em "limite+2" é o limite máximo. Ocorre uma interrupção 5 caso o valor fonte seja menor ou maior que a fonte. | |
| BSF (386+) | Bit Scan Forward (Rastrear Bit à Frente): Rastreia o primeiro bit setado do operando fonte. Seta flag zero se for encontrado um bit setado e põe no destino o índice deste bit. Limpa a flag zero se não forem encontrados bits setados. BSF rastreia para frente através do padrão de bits (0-n) enquanto que BSR rastreia ao contrário (n-0). | |
| BSR (386+) | Bit Scan Reverse (Rastreamento Reverso de Bit): Vide BSF | |
| BSWAP (486+) | Byte Swap (Troca de Bytes): Altera a ordem dos bytes de um registrador de 32 bits de big endian para little endian e vice-versa. O resultado deixado no registrador destino é indefinido se o operando for um registrador de 16 bits. | |
| BT (386+) | Bit Test (Teste de Bit): O bit destino indexado pelo valor fonte é copiado para a Carry Flag. | |
| BTC (386+) | Bit Test with Compliment (Teste de Bit com Complemento): O bit destino indexado pelo valor fonte é copiado para a Carry Flag após ter sido complementado (invertido). | |
| BTR (386+) | Bit Test with Reset (Teste de Bit com Reset): O bit destino indexado pelo valor fonte é copiado para a Carry Flag e depois é zerado no destino. | |
| BTS (386+) | Bit Test and Set (Teste e Ativação de Bit): O bit destino indexado pelo valor fonte é copiado para a Carry Flag e depois é ativado no destino. | |
| CALL | Procedure Call (Procedimento de Chamada): Põe o Ponteiro de Instrução (e o Segmento de Código para chamadas do tipo far) na pilha e carrega o Ponteiro de Instrução com o endereço do nome do procedimento. O código continua com a execução em CS:IP. | Call destino |
| CBW | Convert Byte to Word (Converter Byte para Word): Converte o byte em AL para um valor word em AX extendendo o sinal de AL através do registrador AH. | |
| CDQ (386+) | Convert Double to Quad (Converter Double para Quad): Converte um dword com sinal em EAX para um quad word com sinal em EDX:EAX extendendo o bit de ordem superior de EAX através de EDX. | |
| CLC | Clear Carry (Limpa Carry): Limpa (zera) a Flag Carry. | |
| CLD | Clear Direction Flag (Limpa a Flag de Direção): Limpa (zera) a Flag de Direção levando instruções de string a incrementar os índices dos registradores SI e DI. | |
| CLI | Clear Interrupt Flag (Desabilita a Flag de Interrupção): Desabilita as interrupções de hardware com máscara zerando a Flag de Interrupção. As interrupções de software de NMI não são inibidas. | |
| CLTS (286+) | Clear Task Switched Flag (Limpa a Flag de Task Switched): Limpa a Flag de Task Switched no Registrador de Status da Máquina (Machine Status Register). Esta é uma operação privilegiada e geralmente só é usada pelo código operacional do sistema. | |
| CMC | Complement Carry Flag (Complemento da Carry Flag): Inverte a Carry Flag. | |
| CMP | Compare (Compara): Subtrai a fonte do destino, atualiza as flags mas não guarda o resultado. | CMP destino, fonte |
| CMPS | Compare String (Compara String): Subtrai o valor destino do valor fonte sem salvar o resultado. Atualiza as flags de acordo com a subtração e os registradores de índice (E)SI e (E)DI são incrementados ou decrementados de acordo com o estado da Flag de Direção. Os prefixos REP podem ser usados para processar itens de dados inteiros. | |
| CMPSB | Compare String Byte (Compara String Byte): Idem CMPS. Incrementa/decrementa em 1 os registradores de índice. | |
| CMPSW | Compare String Word (Compara String Word): Idem CMPS. Incrementa/decrementa em 2 os registradores de índice. | |
| CMPSD | Compare String DoubleWord (Compara String DWord): Idem CMPS. Incrementa/decrementa em 4 os registradores de índice. | |
| CMPXCHG | Compare and Exchange (Compara e Troca): Compara o acumulador (8-32 bits) com o destino. Se igual, o destino recebe a fonte; se diferente, o acumulador recebe o destino. | |
| CWD | Convert Word to DoubleWord (Converte Word para DWord): Extende o sinal do word no registrador AX através do registrador DX formando uma quantidade dword em DX:AX. | |
| CWDE (386+) | Convert Word to Extended DoubleWord (Converte Word em DWord estendido): Converte um word com sinal em AX em um dword com sinal em EAX extendendo o bit de sinal de AX através de EAX. | |
| DAA | Decimal Adjust for Addition (Ajuste Decimal para Adição): Corrige o resultado (em AL) de uma operação BCD de adição prévia. O conteúdo de AL é modificado para um par de dígitos decimais "packed". | |
| DAS | Decimal Adjust for Subtraction (Ajuste Decimal para Subtração): Corrige o resultado (em AL) de uma operação BCD de subtração prévia. O conteúdo de AL é modificado para um par de dígitos decimais "packed". | |
| DEC | Decrement (Decrementa): Subtração binária sem sinal de um (1) do destino. | DEC destino |
| DIV | Divide: Divisão sem sinal do acumulador pela fonte. Se o divisor fonte for um valor byte, então BL é dividido pela fonte e o quociente é colocado em BL e o resto em BH. Se o operando fonte for um valor word, então DX:AX é dividido pela fonte e o quociente é colocado em BX e o resto em DX. | DIV fonte |
| ENTER | Make Stack Frame (Fazer Frame de Pilha): Modifica a pilha para entrada de procedimento para linguagem de alto nível. Os operandos "locais" especificam a quantidade de armazenamento que deve ser alocada à pilha. O operando "nível" especifica o nível de aninhamento da rotina. Fazendo par com a instrução LEAVE, este é um método eficiente para entrar e sair de procedimentos. | |
| ESC | Escape: possibilita o acesso ao bus de dados para outros processadores residentes. A CPU trata esta instrução como NOP mas aloca o operando de memória no bus. | |
| HLT | Halt CPU (Pára a CPU): pára a CPU até que a linha RESET é ativada, NMI ou interrupção com máscara recebida. The CPU "dorme" mas retém o CS:IP corrente para um reinício futuro. | |
| IDIV | Signed Integer Division (Divisão Inteira com Sinal): Divisão com sinal do acumulador pela fonte. Se a fonte for um valor byte, BX é dividido pela fonte, o quociente é colocado em BL e o resto em BH. Se a fonte for um valor word, DX:AX é dividido pela fonte, o quociente colocado em BL e o resto em DX. | IDIV fonte |
| IMUL | Signed Multiply (Multiplicação com Sinal): Multiplicação com sinal do acumulador pela fonte com o resultado colocado no acumulador. Se o operando fonte for um valor byte, ele é multiplicado por AL e o resultado guardado em AX. Se o operando fonte for um valor word, ele é multiplicado por AX e o resultado guardado em EX:AX. Outras variações desta instrução permitem a especificação dos registradores fonte e destino, assim como um terceiro fator imediato. | IMUL fonte |
| IN | Input Byte or Word From Port (Entrada de Byte ou Word de Porta): um byte, word ou dword é lido da porta e colocado em AL, AX ou EAX respectivamente. Se o número da porta estiver entre 0-255 ela pode ser especificada como um valor, caso contrário o número da porta precisa ser especificado em DX. Números de portas válidos no PC situam-se entre 0-1024, apesar de que valores até 65535 podem ser especificados e reconhecidos por equipamentos de terceiros e PS/2. | |
| INC | Increment (Incremento): adiciona um (1) ao operando binário sem sinal destino. | INC destino |
| INS (80188+) | Input String from Port (Entrada de String de Porta): carrega dados de porta para o destino ES:(E)DI (mesmo que um operando de destino for fornecido). (E)DI é ajustado pelo tamanho do operando e incrementado se a Flag de Direção (DF) estiver resetada e decrementado se a Flag de Direção estiver setada. Para INSB, INSW e INSD não são permitidos operandos e o tamanho é determinado pelo mnemônico. | |
| INT | Interrupt (Interrupção): inicia uma interrupção por software colocando (push) as flags na pilha, limpando a Trap e as Flags de Interrupção, pondo (push) CS seguido do IP na pilha e carregando CS:IP com os valores encontrados na tabela de vetores de interrupção. A execução começa no ponto endereçado pelo novo CS:IP. | |
| INTO | Interrupt on Overflow (Interrupção por Overflow): se a flag de overflow (OF) estiver setada, esta instrução gera uma INT 4 que faz com que o código no endereço 0000:0010 seja executado. | |
| INVD (486+) | Invalidate Cache (Invalidar Cache): descarrega o cache interno da CPU. Proporciona uma função especial de ciclo de bus que indica o descarregamento de caches externos. Os dados existentes em caches externos write-back são perdidos. | |
| INVLPG (486+) | Invalidate Translation Look-Aside Buffer Entry (Invalidar Entrada de Buffer Translation Look-Aside): invalida uma entrada de tabela para página única no Buffer Translation Look-Aside. A Intel adverte que esta instrução pode ser implementada de forma diferente em futuros processadores. | |
| IRET / IRETD | Interrupt Return (Retorno de Interrupção): retorna o controle do ponto de interrupção tirando (pop) da pilha o IP, CS e depois as Flags, continuando a execução à partir deste ponto. Interrupções por exceção na CPU retornarão à instrução que causou a interrupção porque o CS:IP colocado na pilha durante a interrupção é o endereço da instrução ofensiva. | |
| Jxx | TODOS OS SALTOS (JUMPS) CONDICIONAIS | |
| JCXZ/JECXZ | Jump if Register (E)CX is Zero (Salte se o Registrador (E)CX for Zero): desvia a execução para "label" se CX for zero. Usa uma comparação sem sinal. | |
| JMP | Uncoditional Jump (Salto Incondicional): transfere o controle para "label" incondicionalmente. Os saltos, por default, estão entre -32768 e 32767 bytes distantes da instrução seguinte ao salto. Saltos NEAR e SHORT provocam a atualização do IP, enquanto que saltos FAR provocam a atualização de CS e IP. | |
| LAHF | Load Register AH From Flags (Carregue o Registrador AH com Flags): Copia os bits de 0 a 7 do registrador de flags para AH. Isto inclui as flags AF, CF, PF, SF e ZF. Os outros bits são indefinidos. | |
| LAR (286+ protegido) | Load Access Rights (Carregue Direitos de Acesso): o byte de ordem superior do registrador destino é sobre-escrito pelo valor do byte dos direitos de acesso e o byte de ordem inferior é zerado dependendo da seleção do operando fonte. A flag zero é setada se a operação de carregamento tiver sucesso. | LAR destino,fonte |
| LDS | Load Pointer Using DS (Carregue Ponteiro usando DS): carrega um ponteiro de 32 bits da memória fonte para o registrador destino e DS. O deslocamento (offset) é colocado no registrador destino e o segmento é colocado em DS. Para usar esta instrução, o word no endereço baixo da memória precisa conter o deslocamento (offset) e o word no endereço alto precisa conter o segmento. Isto simplifica o carregamento de ponteiros far da pilha (stack) e da tabela de vetores de interrupção. | LDS destino,fonte |
| LEA | Load Effective Address (Carregue o endereço efetivo): transfere o endereço offset (de deslocamento) da fonte para o registrador destino. | LEA destino,fonte |
| LEAVE (80188+) | Restore Stack for Procedure Exit (Restaure a Pilha na Saída de Procedimento): libera as variáveis locais criadas pela instrução ENTER prévia restaurando o SP e o IP à sua condição anterior antes da inicialização do frame de pilha do procedimento. | LEAVE |
| LES | Load Pointer Using ES (Carregue Ponteiro usando ES): carrega um ponteiro de 32 bits da memória fonte para o registrador destino e ES. O deslocamento (offset) é colocado no registrador destino e o segmento é colocado em ES. Para usar esta instrução, o word no endereço baixo da memória precisa conter o deslocamento (offset) e o word no endereço alto precisa conter o segmento. Isto simplifica o carregamento de ponteiros far da pilha (stack) e da tabela de vetores de interrupção. | LES destino,fonte |
| LFS (386+) | Load Pointer Using FS (Carregue Ponteiro usando FS): carrega um ponteiro de 32 bits da memória para o registrador destino e FS. O deslocamento (offset) é colocado no registrador destino e o segmento é colocado em FS. Para usar esta instrução, o word no endereço baixo da memória precisa conter o deslocamento (offset) e o word no endereço alto precisa conter o segmento. Isto simplifica o carregamento de ponteiros far da pilha (stack) e da tabela de vetores de interrupção. | LFS destino,fonte |
| LGDT (286+ privilegiado) | Load Global Descriptor Table (Carregue a Tabela de Descritores Globais): carrega um valor de um operando no registrador da Tabela de Descritores Globais (GDT). | LGDT fonte |
| LIDT (286+ privilegiado) | Load Interrupt Descriptor Table (Carregue a Tabela de Descritores de Interrupção): carrega um valor de um operando no registrador da Tabela de Descritores de Interrupções (IDT). | LIDT fonte |
| LGS (386+) | Load Pointer Using GS (Carregue Ponteiro usando GS): carrega um ponteiro de 32 bits da memória para o registrador destino e GS. O deslocamento (offset) é colocado no registrador destino e o segmento é colocado em GS. Para usar esta instrução, o word no endereço baixo da memória precisa conter o deslocamento (offset) e o word no endereço alto precisa conter o segmento. Isto simplifica o carregamento de ponteiros far da pilha (stack) e da tabela de vetores de interrupção. | LGS destino,fonte |
| LLDT (286+ privilegiado) | Load Local Descriptor Table (Carregue a Tabela de Descritores Locais): carrega um valor de um operando no registrador da Tabela de Descritores Locais (LDT). | LLDT fonte |
| LMSW (286+ privilegiado) | Load Machine Status Word (Carregue o Word do Status de Máquina): carrega o word de status de máquina (MSW) de dados encontrados na "fonte". | LMSW fonte |
| LOCK | Lock Bus (Trave o Bus): esta instrução é um prefixo que faz com que a CPU emita um sinal de travamento do bus durante a execução da próxima instrução. Usada para evitar que dois processadores atualizem dados numa mesma localização. O 286 sempre emite um lock durante um XCHG com operandos de memória. Deve ser utilizada para travar o bus apenas antes de instruções XCHG, MOV, IN e OUT. | LOCK |
| LODS | Load String - Byte, Word or Double (Carregue String - Byte, Word ou Double): transfere um elemento string endereçado por DS:SI (mesmo que um operando seja fornecido) para o acumulador. SI é incrementado baseado no tamanho do operando ou baseado na instrução usada. Se a flag de direção estiver setada, SI é decrementado, se estiver resetada (zerada), SI é incrementado. Use com prefixos REP. | LODS fonte |
| LOOP | Decrement CX and Loop if CX Not Zero (Decrementa CX e faz Loop se CX for Não Zero): decrementa CX em 1 e transfere o controle para "label" se CX não for zero. O operando "label" precisa estar a -128 ou 127 bytes da instrução que segue a instrução de loop. | LOOP label |
| LOOPE/LOOPZ | Loop While Equal / Loop While Zero (Loop enquanto Igual / Loop enquanto Zero): decrementa CX em 1 (sem modificar flags) e transfere o controle para "label" se CX não for zero e a flag zero estiver setada. O operando "label" precisa estar a -128 ou 127 bytes da instrução que segue a instrução de loop. | LOOPE label LOOPZ label |
| LOOPNZ/LOOPNE | Loop While Not Zero / Loop While Not Equal (Loop enquanto Não Zero / Loop enquanto Não Igual): decrementa CX em 1 (sem modificar flags) e transfere o controle para "label" se CX não for zero e a flag zero estiver resetada (zerada). O operando "label" precisa estar a -128 ou 127 bytes da instrução que segue a instrução de loop. | LOOPNZ label LOOPNE label |
| LSL (286+ protegido) | Load Segment Limit (Carregue o Limite de Segmento): carrega o limite de segmento de um seletor no registrador destino se o seletor for válido e visível no nível de privilégio corrente. Se o carregamento for bem sucedido, a flag zero é setada, caso contrário é resetada (zerada). | LSL destino,fonte |
| LSS | Load Pointer Using SS (Carregue Ponteiro usando SS): carrega um ponteiro de 32 bits da memória para o registrador destino e SS. O deslocamento (offset) é colocado no registrador destino e o segmento é colocado em SS. Para usar esta instrução, o word no endereço baixo da memória precisa conter o deslocamento (offset) e o word no endereço alto precisa conter o segmento. Isto simplifica o carregamento de ponteiros far da pilha (stack) e da tabela de vetores de interrupção. | LSS destino,fonte |
| LTR (286+ privilegiado) | Load Task Register (Carregue Registrador de Tarefas): carrega o registrador de tarefas atual com os valores epecificados em "fonte". | LTR fonte |
| MOV | Move Byte or Word (Move Byte ou Word): copia um byte ou word do operando fonte para o operando destino. Se o destino é SS, as interrupções são desabilitadas, exceto nas CPUs 808x mais antigas e com bug. Algumas CPUs desabilitam as interrupções se o destino for um dos registradores de segmento. | MOV destino,fonte |
| MOVS | Move String - Byte or Word (Move String - Byte ou Word): copia dados endereçados por DS:SI (mesmo que um operando seja fornecido) para a localização ES:DI e atualiza SI e DI baseado no tamanho do operando ou da instrução usada. Se a flag de direção estiver resetada (zerada), SI e DI são incrementados, se estiver setada, SI e DI são decrementados. Use com prefixos REP. | MOVS destino,fonte MOVSB MOVSW MOVSD |
| MOVSX (386+) | Move with Sign Extended (Mova com Sinal Estendido): copia o valor do operando fonte para o registrador destino com o sinal estendido. | MOVSX destino,fonte |
| MOVZX | Move with Zero Extended (Mova com Zero Estendido): copia o valor do operando fonte para o registrador destino estendido com zeros. | MOVZX destino,fonte |
| MUL | Unsigned Multiply (Multiplicação sem Sinal): multiplicação sem sinal do acumulador pela fonte. Se a fonte for um valor byte, então AL é usado como o outro multiplicando e o resultado é colocado em AX. Se a fonte for um valor word, então AX é multiplicado pela fonte e EX:AX recebe o resultado. Se a fonte for um valor double word, então EAX é multiplicado pela fonte e EDX:EAX recebe o resultado. | MUL fonte |
| NEG | Two's Complement Negation (Negação com Complemento de 2): subtrai o destino de 0 (zero) e salva o complemento de 2 no próprio destino. | NEG destino |
| NOP | No Operation (Nenhuma Operação): esta é uma instrução de fazer nada. Resulta na ocupação tanto de espaço quanto de tempo e é muito útil para fazer patches em segmentos de código. (Esta é a instrução XCHG AL,AL original). | NOP |
| NOT | One's Complement Negation - Logical NOT (Negação com Complemento de 1 - NÃO Lógico): Inverte os bits do operando destino formando seu complemento de 1. | NOT destino |
| OR | Inclusive Logical OR (OU Inclusive Lógico): OU Inclusive Lógico dos dois operandos, retornando o resultado no destino. Todos os bits ativos em qualquer dos operandos estará ativo no resultado. | OR destino,fonte |
| OUT | Output Data to Port (Saída de Dados para Porta): transfere um byte, word ou dword, em AL, AX ou EAX respectivamente, para a porta. Se o número da porta estiver entre 0-255 ela pode ser especificada como um valor, caso contrário o número da porta precisa ser especificado em DX. Uma vez que o PC apenas decodifica 10 bits do endereço de portas, valores acima de 1023 só podem ser decodificados por equipamentos de terceiros e também mapear portas no intervalo 0-1023. | OUT porta,acumulador |
| OUTS (80188+) | Output String to Port (Saída de String para Porta): transfere um byte, word ou dword da fonte para a porta do hardware especificada em DX. Para instruções sem operandos a fonte fica localizada em DS:SI e SI é incrementado ou decrementado pelo tamanho do operando ou o tamanho ditado pelo formato da instrução. Quando a flag de direção está setada, SI é decrementado, quando resetada (zerada), SI é incrementado. Se o número da porta estiver entre 0-255 ela pode ser especificada como um valor, caso contrário o número da porta precisa ser especificado em DX. Uma vez que o PC apenas decodifica 10 bits do endereço de portas, valores acima de 1023 só podem ser decodificados por equipamentos de terceiros e também mapear portas no intervalo 0-1023. | OUTS porta,fonte OUTSB OUTSW OUTSD (386+) |
| POP | Pop Word off Stack (Tire Word da Pilha): transfere o word do topo da pilha (SS:SP) para o destino e incrementa SP em 2 para indicar o novo topo de pilha. CS não é um destino válido. | POP destino |
| POPA/POPAD (80188+) | Pop All Registers onto Stack (Tire Todos os Registradores da Pilha): retira os 8 words do topo da pilha e os coloca nos 8 registradores de 16/32 bits de uso geral. Os registradores recebem os valores na seguinte ordem: (E)DI, (E)SI, (E)BP, (E)SP, (E)DX, (E)CX e (E)AX. O valor retirado da pilha para (E)SP é descartado. | POPA POPAD (386+) |
| POPF/POPFD | Pop Flags off Stack (Tire as Flags da Pilha): tira word/doubleword da pilha e os transfere para os registradores de flags. Depois incrementa SP em 2 (para POPF) ou 4 (para POPFD). | POPF POPFD (386+) |
| PUSH | Push Word onto Stack (Ponha Word na Pilha): decrementa SP pelo tamanho do operando (dois ou quatro, valores byte são estendidos por sinal) e transfere um word da fonte para o topo da pilha (SS:SP) | PUSH fonte PUSH valor |
| PUSHA/PUSHAD (80188+) | Push All Registers onto Stack (Ponha Todos os Registradores na Pilha): transfere todos os registradores de uso geral na pilha na seguinte ordem: (E)AX, (E)CX, (E)DX, (E)BX, (E)SP, (E)BP, (E)SI e (E)DI. O valor de SP é o valor anterior à atual transferência de SP. | PUSHA PUSHAD (386+) |
| PUSHF/PUSHFD | Push Flags onto Stack (Ponha as Flags na Pilha): transfere os registradores de flags para a pilha. PUSHF guarda um valor de 16 bits enquanto que PUSHFD guarda um valor de 32 bits. | PUSHF PUSHFD (386+) |
| RCL | Rotate Through Carry Left (Rolar através do Carry para a Esquerda): Rola os bits do destino para a esquerda as "vezes" indicadas com todos os dados que "vazarem" pela esquerda re-entrando pela direita. A flag de carry conterá o valor do último bit rolado. | RCL destino,v ezes |
| RCR | Rotate Through Carry Right (Rolar através do Carry para a Direita): Rola os bits do destino para a direita as "vezes" indicadas com todos os dados que "vazarem" pela direita re-entrando pela esquerda. A flag de carry conterá o valor do último bit rolado. | RCR destino, vezes |
| ROL | Rotate Left (Rotação para a Esquerda): Rola os bits do destino para a esquerda as "vezes" indicadas com todos os dados que "vazarem" pela esquerda re-entrando pela direita. A flag de carry conterá o valor do último bit rolado. | ROL destino, vezes |
| ROR | Rotate Right (Rotação para a Direita): Rola os bits do destino para a direita as "vezes" indicadas com todos os dados que "vazarem" pela direita re-entrando pela esquerda. A flag de carry conterá o valor do último bit rolado. | ROR destino, vezes |
| SAR | Shift Arithmetic Right (Deslocamento Aritmético para a Direita): Desloca os bits do destino para a direita as "vezes" indicadas com o bit de sinal replicado no último bit. A flag de carry conterá o valor do último bit deslocado. | SAR destino, vezes |
| SBB | Subtract with Borrow (Subtração com Empréstimo): Subtrai a fonte do destino, além de subtrair 1 se a flag de carry estiver setada. O resultado é armazenado no destino. | SBB destino, fonte |
| SHL | Shift Logical Left (Deslocamento Lógico para a Esquerda): Desloca os bits do destino para a esquerda as "vezes" indicadas com zeros colocados à direita. A flag de carry conterá o valor do último bit deslocado. | SHL destino, vezes |
| SHR | Shift Logical Right (Deslocamento Lógico para a Diretita): Desloca os bits do destino para a direita as "vezes" indicadas com zeros colocados à esquerda. A flag de carry conterá o valor do último bit deslocado. | SHR destino, vezes |
| SUB | Subtraction (Subtração): Subtrai a fonte do destino e o resultado é armazenado no destino. | SUB destino, fonte |
| TEST | Test (Testar): Faz um AND lógico entre os operandos, atualizando as flags e sem armazenar o resultado. | TEST destino, fonte |
| XCHG | Exchange (Troca): Troca o destino pela fonte e vice-versa. | XCHG destino, fonte |
| XOR | Exclusive Or (OU Exclusivo): faz um OU Exclusivo entre os operandos e retorna o resultado no destino. | XOR destino, fonte |