Escolar Documentos
Profissional Documentos
Cultura Documentos
Comandos ASM
Comandos ASM
A FFFFh. Caso seja utilizado o registrador AX, o valor lido no endere co fornecido ser a
carregado em AL e o valor lido no endere co subsequente ser a carregado em AH.
10. INC destino
Adiciona 1 ao conte udo de um operando, podendo ser um registrador ou posi c ao de mem oria.
Os ags afetados s ao: AF, OF, PF, SF e ZF.
Para se incrementar o conte udo de uma mem oria, deve-se utilizar: INC byt ptr[SI]. Neste caso,
` a posi c ao de mem oria apontada por SI ser a adicionado uma unidade.
11. INT tipo
Esta instru c ao altera o uxo do programa, chamando uma rotina de interrup c ao que e determi-
nada pelo tipo. Os ags IF e TF s ao alterados, sendo colocados em n
Avel baixo.
13. IRET
Esta instru c ao naliza uma rotina de interrup c ao, recuperando da pilha o conte udo dos regis-
tradores que foram automaticamente salvos (IP, CS e ags), retornando o processador ao ponto
de parada antes do pedido de interrup c ao. Todos os ags s ao afetados.
14. JMP alvo
Esta instru c ao provoca um salto incondicional no uxo de processamento. De forma similar
A s
instru c ao de salto condicional, e necess ario que a dist ancia entre o salto e o alvo seja um valor
entre 128 e +127 bytes.
15. JCONDICAO label alvo curto
Provoca um desvio no processamento para o label se uma condi c ao testada for encontrada.
Utiliza-se, normalmente, os ags para o teste da condi c ao. O label alvo tem que estar na faixa
de -128 a +127 bytes da pr oxima instru c ao devido a utiliza c ao de apenas um byte ( considerando
n umero com sinal) a ser adicionado ao IP para gerar o endere co alvo. A Tabela a seguir mostra
as condi c oes existentes para o salto condicional. Neta tabela, ABOVE e BELOW referem-se a
n umeros n ao sinalizados e GREATER e LESS a n umeros sinalizados.
2
Instru c ao Desvio relativo se Condi c ao testada
JA above CF=0 e ZF=0
JAE above ou equal CF=0
JB below CF=1
JBE below ou equal CF=1 ou ZF=1
JC carry CF=1
JE ou JZ equal (zero) ZF=1
JG greater ZF=0 e SF=OF
JGE greater ou equal SF=OF
JL less (SF xor OF)=1
JLE less ou equal (SF XOR OF)=1 OU ZF=1
JNA not above CF=1 ou ZF=1
JNAE not above nor equal CF=1
JNB not below CF=0
JNBE not below nor equal CF=0 e ZF=0
JNC not carry CF=0
JNE ou JNZ not equal (not zero) ZF=0
JNG not greater ((SF xor OF) or ZF)=1
JNGE not greater nor equal (SF xor OF)=1
JNL not less SF=OF
JNLE not less nor equal ZF=0 e SF=OF
JNO not overow OF=0
JNP ou JPO not parity (par. odd) PF=0
JNS not sign SF=0
JO overow OF=1
JP ou JPE parity (parity even) PF=1
JS sign SF=1
16. LEA destino, fonte
Carrega no registrador destino o endere co efetivo de um operando na mem oria.
17. LOOP label alvo
neste caso, o registrador contador CX e decrementado a cada vez que o loop for executado,
permanecendo o programa no loop ate que CX seja igual a zero.
18. MOV destino, fonte
Copia o conte udo do operando fonte para o operando destino, sem destruir o conte udo do
operando fonte. O registrador de segmento de c odigo (CS) pode ser utilizado como fonte de
dados, mas n ao como destino. Os modos de acesso a dados foram explorados na pr atica anterior,
sendo que existem sete modos de transferencia de dados:
(a) do acumulador para a mem oria; Neste caso, o acesso a mem oria pode ser realizado por um
acesso imediato ou utilizando-se os registradores SI, ou DI, ou BX. (MOV [SI],AL ;MOV
[BX+DI],AX; MOV [00A0h],DL
(b) da mem oria para o acumulador;
(c) da mem oria ou registrador para registrador de segmento
(d) do registrador de segmento para a mem oria ou registrador
(e) de registrador para registrador
(f) dado imediato para registrador
(g) dado imediato para mem oria
quando for utilizar um dado imediato, o valor a ser transferido deve come car sempre com
um n umero, ou seja, para se transferir FFh para o registrador AL, deve-se utilizar MOV
AL, 0FFh.
3
19. MUL fonte
Realiza a multiplica c ao entre a fonte e o registrador AX. Se a fonte for de 8 bits, a opera c ao ser a
realizada entre a fonte e o registrador AL. O resultado estar a em AX. Se a fonte for de 16 bits,
a opera c ao ser a realizada entre a fonte e o registrador AX. A parte alta do resultado estar a em
DX e a parte baixa em AX.
Esta opera c ao afeta o ags CF e OF. O operando fonte tem que ser um registrador ou uma
posi c ao de mem oria.
20. NOP
Esta opera c ao n ao realiza nenhuma opera c ao especca, sendo utilizada para prop ositos de
temporiza c ao.
21. OR destino, fonte
Executa a opera c ao l ogica OR entre o destino e a fonte. O resultado ca armazenado no destino.
Os falgs CF, OF, PF, SF e ZF s ao afetados por esta instru c ao.
22. OUT endere co, AX
OUT DX, AX
A instru c ao OUT opera de forma semelhante
A instru c ao IN. Desta forma, pode-se optar por
utilizar todo o registrador AX ou somente o registrador AL. Caso se utilize todo o registrador
AX, o valor de AL ser a transferido para o endere co fornecido e o valor de AH ser a transferido
para o endere co fornecido acrescido de uma unidade.
23. POP destino
A instru c ao POP retira uma palava (16 bits) da pilha e a armazena no registrador destino.
24. PUSH fonte
A instru c ao PUSH armazena o valor do registrador fonte (16 bits) na pilha.
25. PROC e ENDP
Estas instru c oes n ao fazem parte do conjunto de instru c oes do assembly, mas s ao pseudo-
operadores utilizados pelo compilador para delimitar uma sub-rotina. Ao se denir uma subro-
tina e necess ario informar se essa subrotina e do tipo near ou far (dentro do pr oprio segmento
de c odigo ou entre segmentos, respectivamente).
A seguinte listagem exemplica a deni c ao de uma subrotina:
alvo PROC NEAR
mov ax,0FFFAh
mov bl,ah
ret
alvo ENDP
26. REPE comando
REPNE comando
Estes comandos s ao prexos utilizados para repetir uma instru c ao de string pelo n umero de
vezes especicado em CX. Ap os a execu c ao do comando, o valor de CX e decrementado, sem
afetar o estado dos ags de sinaliza c ao. REPE repete o comando enquanto CX <> 0 e ZF = 1.
REPNE repete o comando enquanto CX <> 0 e ZF = 0.
27. RET
Esta instru c ao encerra uma subrotina, fazendo com que o uxo de processamento volte ao
programa principal.
A instru c ao CALL e RET funcionam de maneira parecida
A s instru c oes INT e IRET. Entre-
tanto, a subrotina existe no programa que est a sendo executado e n ao em um local determinado
4
pelo vetor de interrup c ao. Portanto, e importante que, ao nal da sub-rotina, o valor de SP
esteja no mesmo n
Avel que estava na entrada da sub-rotina pois a fun c ao RET busca na pilha
o valor de IP (ou IP e CS, no caso de subrotina do tipo inter-segmento) para que o programa
possa voltar ao seu uxo normal.
28. ROL destino,1
ROL destino, CL
Esta opera c ao rotaciona o conteudo especicado pelo destino para a esquerda. O valor do bit
mais signicativo e colocado no CF e no lugar do bit menos signicativo. A quantidade de bits
a serem rotacionados e 1 (um) ou o n umero especicado em CL.
29. ROR destino,1
ROR destino, CL
Esta opera c ao rotaciona o conteudo especicado pelo destino para a direita. O valor do bit
menos signicativo e colocado no CF e no lugar do bit mais signicativo. A quantidade de bits
a serem rotacionados e 1 (um) ou o n umero especicado em CL.
30. SAL destino, 1
SAL destino, CL
Esta opera c ao desloca o conte udo especicado pelo destino para a esquerda. O valor do bit mais
signicativo e colocado apenas no CF e e inserido um zero no lugar do bit menos signicativo.
A quantidade de bits a serem deslocados e 1 (um) ou o n umero especicado em CL.
31. SAR destino,1
SAR destino,CL
Esta opera c ao desloca o conte udo especicado pelo destino para a direita. O valor do bit menos
signicativo e colocado apenas no CF, sendo que o bit mais signicativo permanece com o mesmo
valor anterior. A quantidade de bits a serem deslocados e 1 (um) ou o n umero especicado em
CL.
32. STD
Seta o bit DF no registrador de ags. Ap os esta instru c ao, o valor de DF ser a igual
A um. AO se
realizar uma opera c ao de string, os registradores de
Andice s ao automaticamente decrementados.
33. SUB destino, fonte
Executa a subtra c ao direta entre dois operandos, o destino e o fonte (destino = destino - fonte).
O resultado ser a armazenado no operando destino. Esta opera c ao afeta os ags AF, CF, OF,
PF, SF, ZF
34. XCHG destino, fonte
Esta instru c ao faz a permuta c ao entre o conte udo dos dois operandos, que podem ser dois
registradores ou um registrados e uma posi c ao de mem oria. Os ags de sinaliza c ao n ao s ao
alterados quando esta instru c ao e executada.
35. XOR destino, fonte
Executa uma opera c ao de ou-exclusivo entre o destino e a fonte. O resultado ca armazenado
no destino. Os ags CF, OF, PF, SF e ZF s ao afetados por esta instru c ao.
5