; Programa Exemplo ; Autor : Ricardo Anido ;************************* ; algumas constantes ;************************* LF .equ 0ah ; line feed CR .equ 0dh ; carriage return BUFSIZE .equ 256 ; tamanho maximo do buffer de entrada ;************************* ; texto do programa ;************************* main: ;imprime mensagem inicial na tela ; r0 numero de bytes a escrever ; r1 endereco do buffer set r0, msg3-msg1 ; size msg1 + msg2 set r1, msg1 sys 12h ; write! ; Nota: ; a instrucao 'sys 12h' imprime na tela uma cadeia ; de caracteres cujo comprimento eh dado pelo valor do ; registrador r0. O endereco inicial da cadeia de ; caracteres eh indicado por r1 ; exemplo de leitura ; r0 numero maximo de bytes a serem lidos ; r1 endereco do buffer set r0, BUFSIZE set r1, buffer sys 11h ; read mov r2,r0 ; guarda numero de bytes efetivamente lidos ; Nota: ; a instrucao 'sys 11h' retorna uma cadeia de caracteres ; lida da entrada padrao. O numero de caracteres lido ; eh retornado em r0. O endereco de onde a cadeia ; serah armazenada deve ser dado em r0. ; apenas para conferir, imprime na tela o que foi lido ; r0 numero de bytes a escrever ; r1 endereco do buffer set r0, msgend-msg3 ; size msg3 set r1, msg3 sys 12h ; write mov r0, r2 ; recupera num bytes lidos set r1, buffer ; r0 tem numero de bytes efetivamente lidos ; r1 tem endereco inicial do buffer sys 12h ; write set r0, 2 set r1, msgend ; para pular de linha sys 12h ; write sys 20h ; termina a execucao ;************************* ; area de dados ;************************* .org 200h ; mensagens msg1: .db CR,LF,'Benvindo(a) ao Faiska',CR,LF msg2: .db 'Entre com uma sequencia de caracteres: ' msg3: .db CR,LF,'Sequencia lida: ' msgend: .db CR,LF ; buffer de entrada buffer: .ds BUFSIZE