ecbscbbdcsb

907 palavras 4 páginas
;SI
;Professor: Sergio Cavalcante
;Alunos: Lucas Monteiro de Carvalho e Natalia Vitoria Soares Francelino de Souza
;Assembly >>>>>>>>>>>>>>> java
;Java e para os fracos

section .data ;lugar onde colocamos a variaveis inicializadas. msg1: db ' Digite o numero de discos ', 0xA, 0xD msg1Len: equ $ - msg1 pt1: db 'Movendo disco ', 0 pt1Len: equ $ - pt1 pt2: db ' de ', 0 pt2Len: equ $ - pt2 pt3: db ' para ', 0 pt3Len: equ $ - pt3 section .bss ;reserva de espaco para dados nao inicializados

discos: resd 1 ;reserva 1 dword discoStr: resb 4 ;reserva 4 bytes char: resb 1 ;reserva 1 byte char2: resd 1 ;reserva 1 dword section .text ;onde escrevemos o codigo

global _start

_start:;pode ser comparado ao main do java xor eax, eax ;zerar o registrador xor ebx, ebx ;zerar o registrador xor ecx, ecx ;zerar o registrador xor edx, edx ;zerar o registrador xor esi, esi ;zerar o registrador ;padrao de impressao, imprimindo msg1-"Digite a quantidade de discos" mov eax, 4 ; 4 =end of tape mov ebx, 1 ; start of header mov ecx, msg1 mov edx, msg1Len int 80h ;padrao de entrada mov eax, 3 ;3 = end of text mov ebx, 0 ;0 = null mov ecx, discoStr ;entrada do usuario mov edx, 4 ;4 = end of tape int 80h

;conta numeros de caracteres, essencial para a funcao charpraint call strlen mov ebx, 0 ;zera o ebx para receber o tamanho da string mov ebx, eax ;tamanho da string call charpraint ;chama a funcao para converter de char para int

mov [discos], eax ;mandando o numero convertido para discos , coloca dentro do colchetes para informar um numero real push ebp mov ebp, esp push dword 'B' ;auxiliar push dword 'C' ;para C push dword 'A' ;de A xor eax, eax ;zerar o registrador mov eax, dword[discos] ;numero de discos push dword eax call hanoi ;chamar a recursividade do hanoi fim: mov eax, 1 mov ebx, 0

Relacionados