1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Assembly 8086] como apagar caracter?

Discussão em 'Programação' iniciada por Desi, 19 de Abril de 2008. (Respostas: 8; Visualizações: 2419)

  1. Desi

    Desi Suspenso

    pessoal sou novo no assembler e tenho uma questão...

    Preciso apenas de saber como apago um caracter de uma String atraves do backspace

    passa pelo "cmp al, 8" mas de resto n consigo aperceber-me do que seja...

    A quem puder ajudar um muito obrigado

    Já agora é para 8086

    :(

    cumpz
     
  2. theforbidden1

    theforbidden1 Banido

    i) precisas de saber o que tu queres ajuda é Asembly 8086, é favor de editar o titulo

    ii)apagar uma string? através do backspace? clarifica melhor a situação...
     
  3. Baderous

    Baderous Banido

    Talvez Assembly 8086. :P
     
  4. Desi

    Desi Suspenso

    o objectivo do programa é:
    1) Escrever uma string no ecrã, como por exemplo o nome duma pessoa
    2) Apagar um caracter dessa string caso a pessoa se engane no que escreveu

    E só me falta saber como apago um caracter utilizando o backspace k segundo o codigo ascii é 8

    cumpz
     
  5. theforbidden1

    theforbidden1 Banido

    i) fazes a leitura do teclado
    ii) caso seja o caracter backspace, escreves 1 espaço no lugar do caracter anterior. Caso seja necessario voltas a escrever a string inteira. E atenção se estiveres a escrever uma string inteira não metes lá o espaço, mas sim diminuis o tamanho da string...
     
  6. Desi

    Desi Suspenso

    ok... obrigado

    ja consegui colocar tudo a funcionar

    cumpz
     
  7. theforbidden1

    theforbidden1 Banido

    Só por curiosidade (eu que nunca programei Assembly 8086, mas programei outro Assembly) qual foi a solução? Aquilo deixa meter só 1 caracter?
     
  8. Desi

    Desi Suspenso

    fiz:

    cmp al, 8 ; compara com bakspace
    je decrementa

    decrementa:

    dec si

    mov al, 32 ; coloca um espaço em branco
    int 21h

    mov al, 8 ; anda pra rrás uma posição com o backspace
    int 21h


    cumpz
     
  9. theforbidden1

    theforbidden1 Banido

    Bem me parecia que era mais ou menos como eu tinha dado instruções :)
     

Partilhar esta Página