Soraia Tarrinha 0 Posted June 4, 2017 Report Share Posted June 4, 2017 Boa tarde, quero guardar carateres do ecrã num ficheiro. O tamanho é 20 linhas e 40 colunas. Desenvolvi código, mas ele só está a guardar 14 linhas. Alguém me consegue ajudar? Mov bx,0 mov si,0 mov ax,0 mov di,si mov cx, 80 lab_ciclo: mov al, es:[bx] mov buffer[si], al inc si add bx,2 loop lab_ciclo add di,82 mov si,di mov cx,82 cmp si, 2050 jne lab_ciclo Link to post Share on other sites
bsccara 27 Posted June 8, 2017 Report Share Posted June 8, 2017 (edited) Olá. Como é a estrutura do bloco que queres passar para o ficheiro (ou a julgar pelo teu código para um 'buffer' para posteriormente ser gravado). ? Pelo teu código estarias a copiar bytes alternados (ou apenas o LSB dum valor de 16 bits), em sequências de 80 da primeira vez e 82 das subsequentes. A comparação final que deveria parar o ciclo exterior também está errada, pois (2050 - 80) / 82 dá um valor fraccionário, o que significa que o registo SI irá fazer 'wrap-around' até eventualmente atingir esse valor, escrevendo para além da área alocada para a variável 'buffer'. Edited June 8, 2017 by bsccara 1 Report Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now