Ir para conteúdo

Ana Francisca

Membros
  • Postagens

    8
  • Registro em

  • Última visita

Posts postados por Ana Francisca

  1. Opa gente bacana, cá estou eu novamente quebrando cabeça com essa linguagem querida. Queria entender o por que é necessário fazer essa conversão do ascii pro decimal ou do decimal pro ascii, nessa conversão é como se eu colocasse um sistema de numeração na frente do outro, para o resultado ser produzido em decimal não em ascii? se é isso por que isso acontece, o ascii tem alguma preferência no assembly? Muitas questões...

    • Curtir 1
  2. Novamente no meu drama estudando assembly, cheguei no assunto das instruções aritméticas e bem começou a dar nós na minha cabeça para variar.

    Um código em específico do conteúdo que estou estudando não tá fazendo muito sentido para mim, veja:

    section	.text
       global _start    ;must be declared for using gcc
    	
    _start:             ;tell linker entry point
       mov	eax,'3'
       sub     eax, '0'
    	
       mov 	ebx, '4'
       sub     ebx, '0'
       add 	eax, ebx
       add	eax, '0'
    	
       mov 	[sum], eax
       mov	ecx,msg	
       mov	edx, len
       mov	ebx,1	;file descriptor (stdout)
       mov	eax,4	;system call number (sys_write)
       int	0x80	;call kernel
    	
       mov	ecx,sum
       mov	edx, 1
       mov	ebx,1	;file descriptor (stdout)
       mov	eax,4	;system call number (sys_write)
       int	0x80	;call kernel
       mov	eax,1	;system call number (sys_exit)
       int	0x80	;call kernel
    	
    section .data
       msg db "The sum is:", 0xA,0xD 
       len equ $ - msg   
       segment .bss
       sum resb 1

     

    Logo no começo do código começou a ficar sem sentido o bagulho, essa parte de: mov eax, '3' (por que c@r@lhos eu to movendo um o 3 entre aspas simples para o registrador eax?)

  3. Tô estudando o assembly e tentei construir um código que altera o valor de um dado especifico, vou mostrar aqui:

    section .data
    
    nome db 'Ana Rocha'
    
    section .text
    
      global _start
    _start:
    
    ; Escrever o nome: Ana Rocha
    
      mov, 4
      mov, 1
      mov, nome
      mov, 9
      int 0x80
    
    mov nome, dword 'Jon' ; Mudar o nome Ana para Jon Linhares
    
    ; Escrever o nome: Jon Linhares
    
      mov, 4
      mov, 1
      mov, nome
      mov, 9
      int 0x80
    
    ; Finalizando o programa
    
      mov, 1
      int 0x80

     

    Só que ta dando erro de sintaxe, provavelmente por que eu realmente não entendi muito de como se usa esses especificadores, então quem puder me mandar algum documento que explique eu ficarei muito grata.🙃

     

    • Curtir 1
  4. Em 29/07/2023 em 18:02, Fernando Mercês disse:

    Oi Ana, bem vinda à Mente Binária. 🙂

    O nasm.us parece estar fora mesmo. No entanto, vejo algumas opções:

    • Se você usa Linux, pode instalar pelo gerenciador de pacotes. Ex.: apt install nasm.
    • Se você usa Windows, pode baixar do Fossies.
    • Se usa macOS, acho pode instalar com o brew.sh: brew install nasm.
    • Você pode estudar Assembly com o fasm alternativamente.

    Espero que ajude. Bons estudos aí!

    Oh meu muito obrigado pela ajuda.

×
×
  • Criar Novo...