segunda-feira, 6 de setembro de 2010

Informática - Linguagem Assembly - Parte 3a

Nessa terceira parte, aprenderemos como utilizar a biblioteca "emu8086" para facilitar a programação, o comando de chamada desta é:

include 'emu8086.inc'

Nessa biblioteca as seguintes macros estão disponíveis:
  • PUTC char - mostrar o char em ASCII na posição atual do cursor.
  • GOTOXY col, row - colocar o cursor em um determinada posição.
  • PRINT string - mostrar a string na posição atual do cursor.
  • PRINTN string - mostrar a string na posição atual do cursor, e descer para a próxima linha
  • CURSOROFF - apagar o cursor.
  • CURSORON - ligar o cursor.
E as seguintes procedures:
  • PRINT_STRING - mostrar uma String na posição atual do cursor e receber o endereço da string em registro DS:SI registo. É necessário declarar: DEFINE_PRINT_STRING.
  • PTHIS - idêntica a PRINT_STRING, mas recebe o endereço da string de Stack. A string terminada em zero deve ser definida logo após a instrução CALL.
  • GET_STRING - obtém uma string de um usuário, a seqüência recebida é gravada no buffer DS:DI, com o tamanho do buffer alocado em DX. Procedimento encerra quando for digitado a tecla "Enter". É necessário declarar: DEFINE_GET_STRING.
  • CLEAR_SCREEN - Limpar a tela. É necessário declarar: DEFINE_CLEAR_SCREEN.
  • SCAN_NUM - Receber o número de dígitos SIGNED multi a partir do teclado e armazena o resultado no registrador CX. Para utilizá-la é necessário declarar: DEFINE_SCAN_NUM.
  • PRINT_NUM - Mostrar um número de registo, assinada em AX. É necessário declarar: DEFINE_PRINT_NUM e DEFINE_PRINT_NUM_UNS.
  • PRINT_NUM_UNS - Mostrar um número unsigned no registo AX. É necessário declarar: DEFINE_PRINT_NUM_UNS.
Utilizando esta biblioteca, podemos criar o seguinte programa (compare-o com os outros já criados) para mostrar a palavra "Hello!" na tela:

include emu8086.inc

ORG 100h
PRINT 'Ola Mundo'
END

Agora como exercício, proponho que você crie o programa para obter dados (que veremos na próxima publicação).

Abraços e até a próxima
Fernando Anselmo

0 comentários:

Postar um comentário