diff --git a/007-find_smallest.s b/007-find_smallest.s new file mode 100644 index 0000000..c5c0e29 --- /dev/null +++ b/007-find_smallest.s @@ -0,0 +1,94 @@ +.global _start +.intel_syntax noprefix +.data + count: + .byte 0x00 + input: + .byte 0x00 + small: + .byte 0xFF + new_line_collector: + .byte 0x00 +.text + _start: + //hello World + lea rsi, [hello_world] + mov rdx, 13 + call printf + + lea rsi, [text_how_many_input] + mov rdx, 40 + call printf + + lea rsi, [count] + mov rdx, 1 + call scanf + + loop: + mov al, '0' + cmp al, [count] + jl get_input + jae conclusion + + get_input: + mov al, count + dec al + mov count, al + lea rsi, [text_give_input] + mov rdx, 14 + call printf + lea rsi, [input] + mov rdx, 1 + call scanf + jmp find_smaller + find_smaller: + mov al, small + mov bl, input + cmp al, bl + ja switch + jle loop + switch: + mov al, input + mov small, al + jmp loop + conclusion: + lea rsi, [text_conclusion] + mov rdx, 19 + call printf + lea rsi, [small] + mov rdx, 1 + call printf + //exit + lea rsi, [text_goodbye] + mov rdx, 9 + call printf + mov rax, 60 + xor rdi, rdi + syscall + hello_world: + .asciz "Hello World\n" + text_how_many_input: + .asciz "How Many Number Do You Want to Insert = " + text_give_input: + .asciz "\nGive Input = " + text_conclusion: + .asciz "\nThe Smallest is = " + text_goodbye: + .asciz "\nGoodbye\n" + printf: + mov rax, 1 + mov rdi, 1 + syscall + xor rdi, rdi + ret + scanf: + mov rax, 0 + mov rdi, 0 + syscall + mov rax, 0 + mov rdi, 0 + mov rsi, [new_line_collector] + mov rdx, 1 + syscall + xor rdi, rdi + ret