Linguagem assembly

Linguagem assembly

(Parte 7 de 11)

3.4.7 Instruções de Desvio

3.4.7.1 Desvio incondicional JMP CX

(CS:IP) ← ‘alvo’ JMP dword ptr [SI] CALL CX

(CS:IP) ← ‘alvo’.

O endereço de retorno é armazenado na pilha.

CALL dword ptr [SI]

(CS:IP)←valor armazenado no topo da pilha

última revisão Ago/200727

Linguagem Assembly Família Intel

RET 8

(CS:IP)←valor armazenado no topo da pilha.

(SP)←(SP)+d16 INT num_vetor INT 21H 51 (esclarecido noutro capítulo)

INTO INTO 53 ou 4 (esclarecido noutro capítulo)

IRET IRET (esclarecido noutro capítulo)

3.4.7.2 Desvio condicional instrução descrição da condição de desvio JA / JNBE Jump if above/not below nor equal JAE / JNB Jump if above or equal/not below JB / JNAE Jump if below/not above JBE / JNA Jump if below or equal / not above JC Jump if carry JE / JZ Jump if equal / zero JG / JNLE Jump if greater / not less nor equal JGE / JNL Jump if greater or equal / not less JLE / JNG Jump if less or equal/ not greather JNC Jump if not carry JNE / JNZ Jump if not equal / not zero JNO Jump if not overflow JNP / JPO Jump if not parit / parity odd JNS Jump if not sign JO Jump if overflow JP / JPE Jump if parity / parity even JS Jump if sign

Tabela 1: Instruções de desvio condicional

última revisão Ago/200728

Linguagem Assembly Família Intel

JA DESTINO 16 ou 4

Como JMP ‘alvo’, desde que ‘cond’ seja satisfeita. JC CX

3.4.8 Controle de Iteração LOOP LABEL 16 ou 5

Se (CX) ≠ 0, (IP)←alvo

LOOPE/LOOPZ alvo LOOPE LABEL 18 ou 6 (CX) ← (CX) -1 LOOPZ LABEL

Se (CX) ≠ 0 e, (ZF) =0 então (IP) ← alvo

LOOPNE/LOOPNZ alvo LOOPE LABEL 19 ou 5 (CX) ← (CX) -1 LOOPZ LABEL

Se (CX) ≠ 0 e, (ZF) ) =0 então (IP) ← alvo

JCXZ alvo JCXZ ROTINA 18 ou 6 Se (CX)=0, então (IP) ← alvo

3.4.9 Manipulação da Pilha

PUSH r16 PUSH SI 1(reg) ou 10 (seg-reg)

última revisão Ago/200729

Linguagem Assembly Família Intel

PUSH m16 PUSH RETURN_CODE[SI] 16+EA

PUSHF PUSHF 10 (SP) ←(SP) -2

((SP)) ←flags

POP r16 POP SI 8

POP m16 POP PARAMETRO 17+EA

(m16) ← ((SP)) (SP) ← (SP) + 2

POPF POPF 8 (flags) ← ((SP))

(SP) ← (SP) + 2

3.4.10 Operações sobre ‘flags’ CLC 2

(CF) ← 0

CMC 2

(CF) ← (CF) STC 2

CLD CLD 2 (DF) ← 0

STD STD 2 (DF) ← 1

última revisão Ago/200730

Linguagem Assembly Família Intel

CLI CLI 2 (IF) ← 0

STI STI 2 (IF) ← 1

3.4.1 Instruções de Entrada e Saída IN AL,d8 IN AL,3FH 10 IN AL,00H

IN AL,DX IN AL,DX 8

OUT d8,AL OUT 24H,AL 10 OUT DX,AX OUT DX,AX 8

3.4.12 "NO OPERATION" NOP NOP 3 não realiza nenhuma operação

3.4.13 Outras Instruções

Para tornar esta relação completa, serão mencionadas instruções, cuja compreensão demanda conhecimento ainda não disponíveis ao estudante nesta altura do curso. Por este motivo não será apresentada uma descrição destas instruções. São elas: ESC, HLT, LOCK, WAIT.

(Parte 7 de 11)

Comentários