Aparentemente é preciso aprender assembly sozinho para conseguir completar o EP. Alguns comandos passados em aula não funcionam (ou foram passados incompletos) e muitas outras operações que são necessárias para finalizar o EP não foram dadas em aula de forma completa.
Resumindo, tá dificil...
PS: Acho que não sou só eu que estou penando pra fazer isso funcionar...
O conteudo passado em aula não é suficiente(?)
Número de respostas: 13
Em resposta à Gabriel Torres Gomes Pato
Re: O conteudo passado em aula não é suficiente(?)
por Renato Avila -
Concordo .
Aproveitando o ensejo:
Demorei um pouco até descobrir como realmente funcionam 2 comandinhos passados na aula:
cmp eax, ' '
na verdade tem que fazer:
cmp byte [eax], ' '
timer 256 buffer db 0
na verdade tem que fazer:
buffer times 256 db 0
pode rolar um adiamento?
Demorei um pouco até descobrir como realmente funcionam 2 comandinhos passados na aula:
cmp eax, ' '
na verdade tem que fazer:
cmp byte [eax], ' '
timer 256 buffer db 0
na verdade tem que fazer:
buffer times 256 db 0
pode rolar um adiamento?
"cmp eax, ' ' " está errado, pois precisamos comparar bytes com bytes, e o registrador eax tem 32 bits. Um "cmp ah, ' ' " resolveria o problema.
Sobre o adiamento, por mim tudo bem dar uns 4 dias a mais, mas precisa necessariamente o professor concordar com isso.
Sobre o adiamento, por mim tudo bem dar uns 4 dias a mais, mas precisa necessariamente o professor concordar com isso.
Em resposta à Marcelo Reis
Re: O conteudo passado em aula não é suficiente(?)
É Marcelo e professor, o adiamento seria muito bem-vindo.
Vejo eu e boa parte da turma sofrendo pra fazer esse programa funcionar.
E Semana Santa não é argumento. Todas as matérias deram trabalhos pra fazer. Eu mesmo nem descansei nesse feriado inteiro.
Pela nossa saúde até o fim do semestre, peço por favor uns dias a mais!
Obrigado!
Vejo eu e boa parte da turma sofrendo pra fazer esse programa funcionar.
E Semana Santa não é argumento. Todas as matérias deram trabalhos pra fazer. Eu mesmo nem descansei nesse feriado inteiro.
Pela nossa saúde até o fim do semestre, peço por favor uns dias a mais!
Obrigado!
Em resposta à Paulo Cheadi Haddad Filho
Re: O conteudo passado em aula não é suficiente(?)
por Douglas Bettioli Barreto -
Eu realmente admito que um adiantamento seria muuuito bem vindo mesmo... assim eu poderia pelo menos dormir agora =P
Mas enfim, a respeito do q foi passado ou não, também senti mta falta de mais exemplos bem elaborados de codigo, e tambem de codigos em linguagem Intel, uma vez que essa foi a pedida no EP (esse ultimo é facilmente alterável, td bem... mas ajudaria =P).
Mas enfim, a respeito do q foi passado ou não, também senti mta falta de mais exemplos bem elaborados de codigo, e tambem de codigos em linguagem Intel, uma vez que essa foi a pedida no EP (esse ultimo é facilmente alterável, td bem... mas ajudaria =P).
Em resposta à Douglas Bettioli Barreto
Re: O conteudo passado em aula não é suficiente(?)
por André Santos de Medeiros -
Apoio totalmente um adiantamento.
Nesta semana, temos 2 provas, dois EPs e logo no começo da semana que vem, temos três exercícios de ED que são na realidade pseudo-EPs.
Eu tô acordado a essa hora (03:33) programando. Fiquei assim a noite toda pra conciliar tudo e pelo visto vou passar mais um bom tempo na frente do pc (eu não comecei a fazer as coisas ontem, aliás. Já estou há um bom tempo fazendo e acabei de descobrir que não tenho mais dupla. =])
Nesta semana, temos 2 provas, dois EPs e logo no começo da semana que vem, temos três exercícios de ED que são na realidade pseudo-EPs.
Eu tô acordado a essa hora (03:33) programando. Fiquei assim a noite toda pra conciliar tudo e pelo visto vou passar mais um bom tempo na frente do pc (eu não comecei a fazer as coisas ontem, aliás. Já estou há um bom tempo fazendo e acabei de descobrir que não tenho mais dupla. =])
Em resposta à André Santos de Medeiros
Re: O conteudo passado em aula não é suficiente(?)
por Marcelo Reis -
Ok, se é para felicidade geral da nação, digam aos alunos que o EP está adiado! Daqui a pouco, na aula, maiores detalhes, mas vocês terão ao menos uns 5 dias a mais para entregar o programinha! 
[]s,
[]s,
Em resposta à Gabriel Torres Gomes Pato
Re: O conteudo passado em aula não é suficiente(?)
por Marcelo Reis -
"e muitas outras operações que são necessárias para finalizar o EP não foram dadas em aula de forma completa."
Exemplos?
Exemplos?
Em resposta à Marcelo Reis
Re: O conteudo passado em aula não é suficiente(?)
Bom, o proprio exemplo que vc corrigiu (casting). Não sabiamos comparar bytes em registradores maiores. E ainda não sabemos como manipular 'tipos', por exemplo transformar um char num inteiro.
Não estamos conseguindo imprimir valores que estão nos registradores. Alias, não sabemos nem se o valor está como char (ASCII) ou int...
Não estamos conseguindo imprimir valores que estão nos registradores. Alias, não sabemos nem se o valor está como char (ASCII) ou int...
Em resposta à Gabriel Torres Gomes Pato
Re: O conteudo passado em aula não é suficiente(?)
por Marcelo Reis -
"E ainda não sabemos como manipular 'tipos', por exemplo transformar um char num inteiro."
"Não estamos conseguindo imprimir valores que estão nos registradores."
Mas a ideia do EP seria justamente essa: vocês bolarem soluções (subrotinas) para transformar o número de string para inteiro de 16 bits. Para a "volta", fica uma dica: você não precisa transformar o número de inteiro para string, basta guardar o string do número lido em uma variável e imprimí-lo, caso ele seja primo.
"Alias, não sabemos nem se o valor está como char (ASCII) ou int..."
Está como int, ou ao menos deveria estar, se você transformou adequadamente o número de string para inteiro não-sinalizado de 16 bits.
[]s,
"Não estamos conseguindo imprimir valores que estão nos registradores."
Mas a ideia do EP seria justamente essa: vocês bolarem soluções (subrotinas) para transformar o número de string para inteiro de 16 bits. Para a "volta", fica uma dica: você não precisa transformar o número de inteiro para string, basta guardar o string do número lido em uma variável e imprimí-lo, caso ele seja primo.
"Alias, não sabemos nem se o valor está como char (ASCII) ou int..."
Está como int, ou ao menos deveria estar, se você transformou adequadamente o número de string para inteiro não-sinalizado de 16 bits.
[]s,
Em resposta à Gabriel Torres Gomes Pato
Re: O conteudo passado em aula não é suficiente(?)
por Matheus Barbosa -
Na minha opinião o que está mais pegando é o fato de termos visto pouquíssimos exemplos de programas em si, e estes ainda eram super básicos... Então ficamos sem saber direito como as coisas se comportam na prática...
Como faço pra imprimir o conteúdo de um registrador? consigo imprimir o buffer, mas nao o conteúdo do ecx por exemplo.
Outra dúvida minha é como fazer o DDD exibir o código fonte! Já fucei em tudo lá e nada!rs
Como faço pra imprimir o conteúdo de um registrador? consigo imprimir o buffer, mas nao o conteúdo do ecx por exemplo.
Outra dúvida minha é como fazer o DDD exibir o código fonte! Já fucei em tudo lá e nada!rs
"Como faço pra imprimir o conteúdo de um registrador? consigo imprimir o buffer, mas nao o conteúdo do ecx por exemplo."
A chamada sys_write imprime um string armazenado na memória; como eu disse na mensagem anterior, para este EP, você não precisa (a não ser que faça questão) passar o número inteiro armazenado no registrador para string: basta guardar o próprio número lido em string (do arquivo) em uma variável, posteriormente imprimindo-o caso seja necessário.
A chamada sys_write imprime um string armazenado na memória; como eu disse na mensagem anterior, para este EP, você não precisa (a não ser que faça questão) passar o número inteiro armazenado no registrador para string: basta guardar o próprio número lido em string (do arquivo) em uma variável, posteriormente imprimindo-o caso seja necessário.
Em resposta à Matheus Barbosa
Re: O conteudo passado em aula não é suficiente(?)
por Felipe Lamberti Amado -
Passa o conteúdo do registrador para uma variável e usa a chamada do kernel para imprimir ué.
Para criar variáveis você pode fazer assim:
section .bss
nome_da_var resb n_de_bytes
Aí nome_da_var guardará o endereço da memória dessa variavel. Para acessar/modificar o valor dessa variavel é só usar colchetes, por exemplo:
mov [nome_da_var], ecx (isso na section .text)
Para criar variáveis você pode fazer assim:
section .bss
nome_da_var resb n_de_bytes
Aí nome_da_var guardará o endereço da memória dessa variavel. Para acessar/modificar o valor dessa variavel é só usar colchetes, por exemplo:
mov [nome_da_var], ecx (isso na section .text)