Baixe o app para aproveitar ainda mais
Prévia do material em texto
A Linguagem Assembly Assembly ou linguagem de montagem código de máquina que uma arquitetura de computador específica usa, utilizada para programar dispositivos computacionais, como microprocessadores e microcontroladores. A linguagem de máquina, que é um mero padrão substituição dos valores em bruto por símbolos chamados mnemônicos; Fonte: Wikipedia Registradores das arquiteturas CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA A Linguagem Assembly linguagem de montagem é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa, utilizada para programar dispositivos computacionais, como microprocessadores e A linguagem de máquina, que é um mero padrão de bits, torna substituição dos valores em bruto por símbolos chamados mnemônicos; Registradores das arquiteturas CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA é uma notação legível por humanos para o código de máquina que uma arquitetura de computador específica usa, utilizada para programar dispositivos computacionais, como microprocessadores e de bits, torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemônicos; 4 registradores de uso geral: • AX (Acumulador): armazena operandos e resultados dos cálculos aritméticos lógicos. • BX (Base): armazena endereços indiretos. • CX (Contador): conta iterações de loops ou especifica o n° de caracteres de uma string. • DX (Dados): armazena overflow e endereço de E/S. • Podem ser usados como registradores de 8 bits. Registradores de Segmento • CS (Segmento de Código): máquina em execução. • DS (Segmento de Dados): o Geralmente aponta para as variáveis globais do programa. • SS (Segmento de Pilha): informações importantes sobre o estado da máquina, variáveis locais, endereços de retorno e parâmetros de subrotinas. • ES (Segmento Extra): quando não é possível usar os outros registradores de segmento. o Ex: transferências de bloco de dados. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA 4 registradores de uso geral: armazena operandos e resultados dos cálculos aritméticos armazena endereços indiretos. conta iterações de loops ou especifica o n° de caracteres de uma armazena overflow e endereço de E/S. Podem ser usados como registradores de 8 bits. gmento CS (Segmento de Código): contém o endereço da área com as instruções de máquina em execução. DS (Segmento de Dados): contém o endereço da área com os dados do programa. Geralmente aponta para as variáveis globais do programa. Pilha): contém o endereço da área com a pilha. Que armazena informações importantes sobre o estado da máquina, variáveis locais, endereços de retorno e parâmetros de subrotinas. utilizado para ganhar acesso a alguma área da memória ndo não é possível usar os outros registradores de segmento. Ex: transferências de bloco de dados. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA armazena operandos e resultados dos cálculos aritméticos e conta iterações de loops ou especifica o n° de caracteres de uma contém o endereço da área com as instruções de contém o endereço da área com os dados do programa. contém o endereço da área com a pilha. Que armazena informações importantes sobre o estado da máquina, variáveis locais, endereços utilizado para ganhar acesso a alguma área da memória Declaração de Dados Dados são sempre declarados na porção de dados do programa, e serão acessados via segmento de dados (DS) ou Todas variáveis devem possuir um tipo de dado: DB (define byte) - 8 bits DW (define word) - 16 bits DD (define double word) - 32 bits DF (define far word) - 48 bits Constantes podem ser declaradas pela cláusula Exemplo: LF EQU 0AH ; LF = 0A (código Variáveis podem ou não possuir valores iniciais. Ex: .data var1 DW 0019h var2 DB ? ; ? Indica a não inicialização da variável var3 DB ‘a’ var4 DB 24,23,22 Msg DB “Entre com o numero:”,0dh,0ah,'$‘ .code Prog: mov al, var4 ; al = 24 = 18h mov al, var4+2 ; al = 23 = 16h CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA Dados são sempre declarados na porção de dados do programa, e serão acessados via ou segmento extra (ES). Todas variáveis devem possuir um tipo de dado: 32 bits 48 bits Constantes podem ser declaradas pela cláusula EQU. LF EQU 0AH ; LF = 0A (código ASCII para Line Feed). Variáveis podem ou não possuir valores iniciais. ; ? Indica a não inicialização da variável Msg DB “Entre com o numero:”,0dh,0ah,'$‘ mov al, var4+2 ; al = 23 = 16h CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA Dados são sempre declarados na porção de dados do programa, e serão acessados via Instruções de Transferência de Dados Instrução MOV: copia dados da posição de origem para a posição de destino. Sintaxe: MOV Dest,Orig Dest contém o endereço de destino (memória ou registrador). Orig contém o endereço de origem (memória ou registrador). Ex: MOV AX,BX ; Copia BX em AX MOV BX,1000h ; Copia 1000h em BX MOV DX,[8000h] ; Copia DS:8000h em DX INSTRUÇÃO CMP CMP: Compara dois valores; Mnemônico Formato CMP CMP op1, op2 A instrução CMP trabalha subtraindo o segundo operando do primeiro, alterando os flags de estado envolvidos, e sem modificar qualquer um dos operandos. A instrução CMP é seguida, normalmente, de instruções de testar os resultados da comparação. Modo de Operação: CMP op1, op2 Variações possíveis dos operandos: op1 op2 Memória Registrador Registrador Memória Registrador Registrador CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA Instruções de Transferência de Dados copia dados da posição de origem para a posição de destino. contém o endereço de destino (memória ou registrador). contém o endereço de origem (memória ou registrador). Ex: MOV AX,BX ; Copia BX em AX MOV BX,1000h ; Copia 1000h em BX MOV DX,[8000h] ; Copia DS:8000h em DX : Compara dois valores; Operação op1, op2 op1 – op2 A instrução CMP trabalha subtraindo o segundo operando do primeiro, alterando os de estado envolvidos, e sem modificar qualquer um dos operandos. A instrução CMP é seguida, normalmente, de instruções de jumps condicionais para testar os resultados da comparação. ≡ op1 – op2 ≠ SUB op1, op2 Variações possíveis dos operandos: op2 Registrador Registrador CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA copia dados da posição de origem para a posição de destino. A instrução CMP trabalha subtraindo o segundo operando do primeiro, alterando os de estado envolvidos, e sem modificar qualquer um dos operandos. condicionais para Registrador Dado imediato Memória Dado Imediato Exemplos: CMP AL,57H ; Compara o conteúdo de AL com 57h. CMP DI,BX ; Compara os conteúdos de DI e BX. CMP [SI],AX ; Compara uma palavra gravada em DS:SI, com o conteúdo de AX. CMP CH,[SI+BX+3] ; Compara o conteúdo de CH com ; o SALTOS Saltos, os famosos jump, desviam a linha de execução. Geralmente são condicionais, do tipo "se alguma coisa, então salte para...", mas existe também uma instruçãode salto incondicional. Os mais comuns são: JA Salte se acima (above) JAE Salte se acima ou igual (above or equal) JB Salte se abaixo (below) JBE Salte se abaixo ou igual (below or equal) JE Salte se igual (equal) JMP Salto incondicional JNA Salte se não acima (not above) JNB Salte se não abaixo (not below) JNE Salte se não igual (not equal) JNZ Salte se não zero (not zero) JZ Salte se zero Instrução LEA Propósito: Carregar o endereço do Sintaxe: LEA destino,fonte O Operador fonte deve estar localizado na memória, e seu deslocamento é colocado no registrador de índice ou ponteiro especificado no destino CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA Dado imediato Dado Imediato CMP AL,57H ; Compara o conteúdo de AL com 57h. CMP DI,BX ; Compara os conteúdos de DI e BX. CMP [SI],AX ; Compara uma palavra gravada em DS:SI, com o conteúdo de AX. CMP CH,[SI+BX+3] ; Compara o conteúdo de CH com ; o byte gravado em DS:SI+BX+3 , desviam a linha de execução. Geralmente são condicionais, do tipo "se alguma coisa, então salte para...", mas existe também uma instrução de Salte se acima (above) Salte se acima ou igual (above or equal) Salte se abaixo (below) Salte se abaixo ou igual (below or equal) Salte se igual (equal) Salto incondicional se não acima (not above) Salte se não abaixo (not below) Salte se não igual (not equal) Salte se não zero (not zero) Propósito: Carregar o endereço do operador Fonte O Operador fonte deve estar localizado na memória, e seu deslocamento é colocado no registrador de índice ou ponteiro especificado no destino CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA CMP [SI],AX ; Compara uma palavra gravada em DS:SI, com o conteúdo de AX. byte gravado em DS:SI+BX+3 , desviam a linha de execução. Geralmente são condicionais, do tipo "se alguma coisa, então salte para...", mas existe também uma instrução de O Operador fonte deve estar localizado na memória, e seu deslocamento é colocado Instruções Aritméticas Instruções ADD e ADC: Soma os dois operandos, colocando o resultado soma o bit Carry, usado para o “vai 1”, possibilitando formar dados maiores. Pode ser com 8 ou 16 bits (depende do operando). Ex: ADD BX,SI ADC AH,[BP+SI+3] Instruções SUB e SBB: Subtrai dois operandos, colocando o também o valor do bit Carry, tornando possível a operação de “vem um” (borrow) com no maiores. Ex: SUB BX,DX SBB AX,[BX+DI] Instruções MUL e IMUL: Multiplica o acumulador (AX ou AL) por um operando na memória registrador. Escolha do ACC depende do tamanho do operando multiplicador. MUL é usada para números sem sinal (só +). IMUL aceita números inteiros (+ ou → DX e AX). Ex: MUL CL MUL word ptr [SI] IMUL DX CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA Instruções Aritméticas Soma os dois operandos, colocando o resultado no primeiro operando. ADC também soma o bit Carry, usado para o “vai 1”, possibilitando formar dados maiores. Pode ser com 8 ou 16 bits (depende do operando). Subtrai dois operandos, colocando o resultado no primeiro operando. SBB subtrai também o valor do bit Carry, tornando possível a operação de “vem um” (borrow) com Multiplica o acumulador (AX ou AL) por um operando na memória registrador. Escolha do ACC depende do tamanho do operando multiplicador. MUL é usada para números sem sinal (só +). IMUL aceita números inteiros (+ ou -). Resultado é guardado em ACC maior (AH CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA no primeiro operando. ADC também soma o bit Carry, usado para o “vai 1”, possibilitando formar dados maiores. resultado no primeiro operando. SBB subtrai também o valor do bit Carry, tornando possível a operação de “vem um” (borrow) com Multiplica o acumulador (AX ou AL) por um operando na memória ou em outro registrador. Escolha do ACC depende do tamanho do operando multiplicador. MUL é ). Resultado é guardado em ACC maior (AH → AX Instruções DIV e IDIV: divide o acumulador (AX ou DX e AX) por um operando de 8 ou 16 bits. DIV é usada para números sem sinal (só +). IDIV aceita números inteiros (+ ou Dividendo é definido pelo tamanho do divisor. Divisor de 8 bits ⇒ AX ÷ Op Divisor de 16 bits ⇒ DX:AX ÷ Op Se quociente não cabe no registrador, a operação gera um estouro de divisão (divide overflow). Ex: DIV CL IDIV byte ptr [BP+4] Instruções INC e DEC: incrementa ou decrementa de uma unidade o operando especificado. Bit Zero é afetado, possibilitando implementar contadores. Ex: Preencher a tela com 2000 caracteres em branco. MOV DX,2000 ; No de bytes a serem enviados ENVIA: MOV AL, 20h ; 20h é o código CALL OUTCHAR ; Envia o caractere para o vídeo DEC DX ; Decrementa o contador JNZ ENVIA ; Pula se não chegou a zero Instruções INC e DEC também podem ser usadas para implementar ponteiros para posições de memória. Útil quando Aritméticas. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA divide o acumulador (AX ou DX e AX) por um operando de 8 ou DIV é usada para números sem sinal (só +). IDIV aceita números inteiros (+ ou Dividendo é definido pelo tamanho do divisor. AX ÷ Op → AL e o resto → AH. DX:AX ÷ Op → AX e o resto → DX. Se quociente não cabe no registrador, a operação gera um estouro de divisão (divide incrementa ou decrementa de uma unidade o operando especificado. Bit Zero é afetado, possibilitando implementar contadores. Ex: Preencher a tela com 2000 caracteres em branco. MOV DX,2000 ; No de bytes a serem enviados ENVIA: MOV AL, 20h ; 20h é o código ASCII do caractere “ ”. ; Envia o caractere para o vídeo ; Pula se não chegou a zero Instruções INC e DEC também podem ser usadas para implementar ponteiros para posições de memória. Útil quando queremos manipular dados seqüenciais. Instruções CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA divide o acumulador (AX ou DX e AX) por um operando de 8 ou DIV é usada para números sem sinal (só +). IDIV aceita números inteiros (+ ou -). Se quociente não cabe no registrador, a operação gera um estouro de divisão (divide incrementa ou decrementa de uma unidade o operando especificado. Bit Zero é afetado, possibilitando implementar contadores. Instruções INC e DEC também podem ser usadas para implementar ponteiros para queremos manipular dados seqüenciais. Instruções INTERRUPÇÕES O mecanismo de interrupção constitui a base de operação de um sistema multiprogramado. O mecanismo de interrupção permite que o controlador de periférico chame a atenção do processador. A função básica do controlador de periférico é conectar o dispositivo em questão ao processador. Uma interrupção sempre sinaliza a ocorrência de algum evento. Quando ela acontece, desvia a execução da posição atual de programa para uma rotina específica. INSTRUÇÃO INT Chama uma função DOS procedimentos; Sintaxe: • INT número da interrupção Exemplo: int 21h ; Chama serviços do DOS int 10h ; Chama a interrupção de Vídeo da BIOS A maior parte das interrupções possui mais de uma função, é normalmente colocado em AH. Para imprimir uma mensagem na tela do monitor tudo que é necessáriofazer é: mov ah,9 ; número da subrotina 9 int 21h ; chama a interrupção INT 21h – Funções de Teclado, • Propósito: Chamar uma diversidade de funções DOS • Necessário especificar que o valor que estamos usando está CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA O mecanismo de interrupção constitui a base de operação de um sistema O mecanismo de interrupção permite que o controlador de periférico chame a atenção processador. A função básica do controlador de periférico é conectar o dispositivo em questão ao processador. Uma interrupção sempre sinaliza a ocorrência de algum evento. Quando ela acontece, desvia a execução da posição atual de programa para função DOS ou BIOS que são subrotinas para realizar determinados número da interrupção ; Chama serviços do DOS ; Chama a interrupção de Vídeo da BIOS parte das interrupções possui mais de uma função, é normalmente colocado Para imprimir uma mensagem na tela do monitor tudo que é necessário fazer é: ; número da subrotina 9 ; chama a interrupção Funções de Teclado, Vídeo, Disco, Relógio e Memória Chamar uma diversidade de funções DOS. ecessário especificar que o valor que estamos usando está em hexadecimal. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA O mecanismo de interrupção constitui a base de operação de um sistema O mecanismo de interrupção permite que o controlador de periférico chame a atenção processador. A função básica do controlador de periférico é conectar o dispositivo em questão ao processador. Uma interrupção sempre sinaliza a ocorrência de algum evento. Quando ela acontece, desvia a execução da posição atual de programa para que são subrotinas para realizar determinados parte das interrupções possui mais de uma função, é normalmente colocado Para imprimir uma mensagem na tela do monitor tudo que é necessário fazer é: em hexadecimal. • Esta interrupção tem muitas funções, para acessar cada uma delas ‚ necessário que o número corresp chamada da interrupção. Funções para mostrar informações no vídeo. 02H Exibe um caracter 09H Exibe uma cadeia de caracteres 40H Escreve num dispositivo/arquivo Funções para ler informações do teclado. 01H Entrada do teclado 0AH Entrada do teclado usando buffer 3FH Leitura de um dispositivo/arquivo Função 01H – Entrada do Teclado Uso: Mostra um caracter na tela Registradores de chamada: � AH = 02H � DL = Valor de caracter a • Registradores de retorno: o Nenhum. o Esta função mostra o caracter cujo código hexadecimal corresponde ao valor armazenado no registrador Função 02H – Saída de caractere na tela Uso: Mostra um caracter na tela � Registradores de chamada: o AH = 02H o DL = Valor de caracter a ser mostrado. � Registradores de retorno: o Nenhum. � Esta função mostra o caracter cujo código hexadecimal corresponde ao valor armazenado no registrador CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA Esta interrupção tem muitas funções, para acessar cada uma delas ‚ necessário que o número correspondente da função esteja no registrador AH chamada da interrupção. Funções para mostrar informações no vídeo. Exibe uma cadeia de caracteres Escreve num dispositivo/arquivo rmações do teclado. Entrada do teclado usando buffer Leitura de um dispositivo/arquivo Entrada do Teclado Uso: Mostra um caracter na tela Registradores de chamada: = Valor de caracter a ser mostrado. Registradores de retorno: Esta função mostra o caracter cujo código hexadecimal corresponde ao valor armazenado no registrador DL, e não modifica nenhum registrador. Saída de caractere na tela na tela Registradores de chamada: Valor de caracter a ser mostrado. Registradores de retorno: Esta função mostra o caracter cujo código hexadecimal corresponde ao valor armazenado no registrador DL, e não modifica nenhum registrador. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA Esta interrupção tem muitas funções, para acessar cada uma delas ‚ necessário registrador AH no momento da Esta função mostra o caracter cujo código hexadecimal corresponde ao valor , e não modifica nenhum registrador. Esta função mostra o caracter cujo código hexadecimal corresponde ao valor , e não modifica nenhum registrador. Função 09h – Escreve atributo e caractere na posição do cursor Entrada: BH = Número da página BL = Atributo (modo texto) ou Cor (modo gráfico) CX = Número de caracteres a serem escritos AL = Código ASCII do caractere AH = 9 Lista com tabelas ASCII CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA Escreve atributo e caractere na posição do cursor BH = Número da página BL = Atributo (modo texto) ou Cor (modo gráfico) CX = Número de caracteres a serem escritos AL = Código ASCII do caractere CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA Exercício 01: Criar um programa que mostre na tela org 100h jmp start msg: db "Hello, World!", 0Dh,0Ah, 24h start: mov dx, msg mov ah, 09h int 21h mov ah, 0 int 16h ret Exercício 02: Criar um programa que leia o conteúdo do teclado e mostre na tela: org 100h jmp start ; ===== Constantes ===== msg0: db 0Dh,0Ah,'digite um Caracter: $' msg1: db 0Dh,0Ah,'O valor do Caracter eh: $' start: MOV dx, msg0 MOV ah, 9h ; função para imprimir o conteúdo de dx INT 21h ; Habilita a interrupção 21 ; ===== Passos para Receber o conte MOV ah,1h entrada padrão) INT 21H push AX CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA rograma que mostre na tela “Hello World” msg: db "Hello, World!", 0Dh,0Ah, 24h Criar um programa que leia o conteúdo do teclado e mostre na tela: msg0: db 0Dh,0Ah,'digite um Caracter: $' valor do Caracter eh: $' ; pega endereco do segmento de dados ; função para imprimir o conteúdo de dx ; Habilita a interrupção 21 - Funções do DOS ; ===== Passos para Receber o conteudo do Teclado ===== ; Ativa a interrupção 21H (01h - Le um caractere da ; Habilita a interrupção 21 - Funções do DOS CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA ; pega endereco do segmento de dados Le um caractere da Funções do DOS MOV dx, msg1 ; pega endereco do segmento de dados MOV ah, 9h INT 21h ; ===== Passos para Imprimir o Caracter pop AX MOV dl,al ; Move cada caracter para o registrador DL MOV ah,2h ; Ativa a interrupção 21H (02H padrão) INT 21h ; Habilita a interrupção 21 ;=====FINALIZAR O PROGRAMA MOV AH,4CH ;código para devolver o controle p/ DOS INT 21H ;interrupção que executa a função em AH ret Exercício 03 – Criar um programa que leia uma letra do teclado e se for a letra X, mostre na tela uma mensagem informando a letra X senão mostre uma outra mensagem informando que não se trata dessa letra org 100h jmp start ; ===== Constantes ===== msg0 : db 0Dh,0Ah,'digite uma Letra:$' msg1 : db 0Dh,0Ah,'O valor eh X MAISCULO:$'msg2 : db 0Dh,0Ah,'O valor nao eh X:$' start: ; ===== Passos para Ler o Conteúdo da Variável msg0 ===== MOV dx, msg0 MOV ah, 9h INT 21h leia: MOV ah,1h ; Ativa a interrupção 21H (01h padrão) CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA ; pega endereco do segmento de dados ; função para imprimir o conteúdo de dx ; Habilita a interrupção 21 - Funções do DOS ; ===== Passos para Imprimir o Caracter ===== ; Move cada caracter para o registrador DL ; Ativa a interrupção 21H (02H - Escreve um caracter na saida ; Habilita a interrupção 21 - Funções do DOS ;=====FINALIZAR O PROGRAMA MOV AH,4CH ;código para devolver o controle p/ DOS INT 21H ;interrupção que executa a função em AH Criar um programa que leia uma letra do teclado e se for a letra X, mostre na tela uma mensagem informando a letra X senão mostre uma outra mensagem informando que não se trata dessa letra ,'digite uma Letra:$' 'O valor eh X MAISCULO:$' ,'O valor nao eh X:$' ; ===== Passos para Ler o Conteúdo da Variável msg0 ===== ; imprimir "digite um Caracter:" ; função para imprimir o conteúdo de dx ; Habilita a interrupção 21 - Funções do DOS MOV ah,1h ; Ativa a interrupção 21H (01h - Le um caractere da entrada CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA Funções do DOS Escreve um caracter na saida Criar um programa que leia uma letra do teclado e se for a letra X, mostre na tela uma mensagem informando a letra X senão mostre uma outra Funções do DOS Le um caractere da entrada INT 21H ; Habilita a interrupçã CMP AL,58H ; compara se a tecla digitada é enter jz x jmp nx x: MOV dx, msg1 MOV ah, 9h INT 21h jmp fim nx: MOV dx, msg2 MOV ah, 9h INT 21h fim: MOV AH,4CH ;código para devolver o controle p/ DOS INT 21H ;interrupção ret Exercício 04 – Criar um programa em Assembly que receba 2 números, realize uma soma e mostre na tela seu resultado. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE CIÊNCIA DA COMPUTAÇÃO ARQUITETURA DE COMPUTADORES PROFESSOR CARLOS RICARDO BERNAL VEIGA ; Habilita a interrupção 21 - Funções do DOS CMP AL,58H ; compara se a tecla digitada é enter ; imprimir "O valor eh X MAISCULO” ; função para imprimir o conteúdo de dx ; Habilita a interrupção 21 - Funções do DOS ; imprimir "O valor eh X MAISCULO” ; função para imprimir o conteúdo de dx ; Habilita a interrupção 21 - Funções do DOS MOV AH,4CH ;código para devolver o controle p/ DOS INT 21H ;interrupção que executa a função em AH Criar um programa em Assembly que receba 2 números, realize uma soma e mostre na tela seu resultado. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE PROFESSOR CARLOS RICARDO BERNAL VEIGA Funções do DOS Funções do DOS Criar um programa em Assembly que receba 2 números, realize uma
Compartilhar