Confronto di N valori
Obbiettivo di questo esercizio è quello di scrivere un programma Assembly che confronti 2 numeri caricati nei registri eax ed ebx e stampi una stringa che indichi quale sia il maggiore ed il minore oppure indichi che i due numeri sono uguali.
# Nome file # ---------- # confronto.s # == PRIMA SEZIONE ============================================================== .section .data #sezione variabili globali minore: #etichetta .ascii "Il valore in %ebx e' piu' piccolo di quello in %eax\n" minore_len: .long . - minore #lunghezza della stringa in byte maggiore: #etichetta .ascii "Il valore in %ebx e' piu' grande di quello in %eax\n" maggiore_len: .long . - maggiore #lunghezza della stringa in byte uguale: #etichetta .ascii "Il valore in %eax e' uguale a quello in %ebx\n" uguale_len: .long . - uguale #lunghezza della stringa in byte # == SECONDA SEZIONE ============================================================ .section .text #sezione istruzioni .global _start #punto di inizio del programma _start: movl $120, %eax movl $320, %ebx cmp %eax, %ebx jg maggiore1 cmp %eax, %ebx jl minore1 cmp %eax, %ebx jge uguale1 maggiore1: leal maggiore, %ecx movl maggiore_len, %edx movl $4, %eax movl $1, %ebx int $0x80 jmp end minore1: leal minore, %ecx movl minore_len, %edx movl $4, %eax movl $1, %ebx int $0x80 jmp end uguale1: leal uguale, %ecx movl uguale_len, %edx movl $4, %eax movl $1, %ebx int $0x80 jmp end end: movl $1, %eax xorl %ebx, %ebx int $0x80
No trackbacks yet.