Nao estou conseguindo escrever byte por byte numa variavel. Hj depois da aula o monitor disse que daria pra usar algo do tipo
str resb 6
mov ax,0
_loop
mov [str+ax],ecx ;onde ecx contem um byte lido do arquivo
inc ax
cmp ax,5
jne _loop
para fazer algo como se fosse v[0] = a; v[1] = b etc...
Alguem sabe como fazer algo assim em assembly?
Fala Gabriel!
Pelo oque entendi, existem registradores especificos para voce fazer isso. Tente usar bx como base, ou seja, str -> bx e di como o registrador de incremento, ax -> di, no seu caso.
Acredito que isso resolva.
Pelo oque entendi, existem registradores especificos para voce fazer isso. Tente usar bx como base, ou seja, str -> bx e di como o registrador de incremento, ax -> di, no seu caso.
Acredito que isso resolva.
Troca o ecx naquele MOV pelo CL.
O ecx inteiro sao 4 bytes enquanto um char é um byte só, e como te expliquei hoje lá na BCC, o CL tem o menor byte do ECX, que será o byte lido.
E como voce tambem só está incrementando até chegar a 5, não precisa de um número de 16bits pra isso, portanto voce pode usar o AL em vez do AX que também deverá funcionar. Mas não acho que esse seja o problema principal aqui.