Ir ao conteúdo

Help em linguagem assembly.


LaraCwb

Posts recomendados

Postado

Não faço a mínima ideia de como se faz isso... por favor me ajudem.

Fazer um programa em assembly usando o debug e seja gravado no setor de boot que:

-imprima"você digitou" + caracter.

-se digitar x ou X o programa deve iprimir "fim".

DICAS: para ler do teclado usar m+ 16H

-para imprimir na tela usar INT 40H

-Para comparar usar a instrução CMP + 36 JNE

Obrigada a quem puder...

beijos

Só consegui isso até agora...

MOV AH, 9 ; Imprime "Digite o caractere desejado: "

MOV DX, msgentrada ;

INT 0x21 ;

MOV AH, 0xA ; Guarda as teclas digitadas

MOV DX, buff ; e armazena no buffer

INT 0x21 ;

MOV AX, 0x4C00 ; Termina o programa

INT 0x21 ;

msgentrada DB 'O caractere digitado é: $'

  • 11 meses depois...
Postado

Oi madame;

No vosso exemplo, você usou a "int 21h" que caracteriza uma interrupção que o S.O. ms-dos disponibiliza. O problema te pede que faça um código para o setor de boot, e com base nisto, o ms-dos não existe, daí você ter que utilizar interrupções que a bios te oferece no modo real.

Em outras palavras, no endereço hexadecimal "7c00" é onde o setor de boot é carregado. A máquina, após ser ligada e em perfeito funcionamento, pula para este endereço, que é onde deve residir vosso programa. Este passo é igual como o ms-dos é carregado, e após carregado, instala serviços ditos "int 21h". Em vosso caso, o ms-dos não existe, por isso você não poderá utilizar a "int 21h".

Isto não impede você de fazê-lo no debug sobre o ms-dos, geralmente faço como se fosse um programa com a extensão .com, pois após apenas preciso gravá-lo no setor inicial da mídia em questão e alterar o endereço para reajustar os deslocamentos.

Para alcançar o desejado, você deverá ter uma noção sobre bootloaders (carregadores), ou inserir um disquete com o setor de boot pré-configurado, e após inserir vosso código em determinado ponto estratégico.

Lembre novamente, que o que caracteriza o fim de determinada string no ms-dos é o símbolo "$" ou "24h", e como não irá usar isto, poderá então assinalar o fim da string com um caracter nulo ou "00h" e consequentemente checar pelo mesmo.

abraços

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!