Assembly

1373 palavras 6 páginas
ASSEMBLER

Os programas que usamos no nosso dia-a-dia e aqueles que criaremos estarão em algum lugar da área disponível para o usuário, isto é, entre o endereço 00500h e 9ffffh. É difícil precisar exatamente o inicio desta área, pois ele depende do tamanho do DOS utilizado.

Para que um programa funcione adequadamente os registradores de segmento deverão%apontar para as 4 suas áreas correspondentes, ou seja, o CS (CODE%SEGMENT) deverà indicar o início do segmento onde estão as instruções executáveis do programa; o DS (DATA SEGMENT) devera indi7ar o inicio da área de dados usada pelo programa; e o SS (STACK1SEGMENT) deveráüapontar para o início do segmento usado com stack da máquina.

Sempre que uma instrução fizer referência, ou apontar para uma outra instrução (CALLs e JUMPs), o endereço desejado será obtido pelo valor do offset contado à partir do início do segmento apontado pelo CS. Sempre que uma instrução fizer referência a um dado (ler/gravar num determinado endereço) o endereço será obtido pelo DS. O mesmo vale para as operações com o stack (PUSHs e POPs), caso em que o apontador usado será o SS.

As rotinas de carregamento de programas do Sistema Operacional se incubem de posicionar os registradores nos seus devidos lugares, pois esses endereços dependerão de onde o programa estará sendo carregado. Como isso é automático, resta saber onde estará ou qual será a primeira instrução executada por umj programa, para então iniciarmos a criação dos nossos.

Quem já tem alguma prática em Assembler Z80 (principalmente em CP/M) encontrará um ambiente muito familiar nos programas com extensão .COM. Isto porque esse tipo de programa de 64 Kbytes, ou seja, todos eles apontam para o mesmo endereço inicial. Nestas circunstâncias tudo se passa como se o micro só tivesse 64 Kbytes de memória.

Quando esse tipo de programa é criado, os primeiros 256 Bytes são reservados para o prefixo do programa e o endereço inicial de

Relacionados

  • Assembly
    699 palavras | 3 páginas
  • Assembly
    730 palavras | 3 páginas
  • Assembly
    3699 palavras | 15 páginas
  • Assembly
    5068 palavras | 21 páginas
  • Assembly
    27928 palavras | 112 páginas
  • Assembly
    378 palavras | 2 páginas
  • Assembly
    739 palavras | 3 páginas
  • assembly
    4756 palavras | 20 páginas
  • Assembly
    636 palavras | 3 páginas
  • Assembly
    4080 palavras | 17 páginas