Andrew Libby on 13 Sep 2017 16:42:46 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] Why Can't Programmers.. Program? |
Nice. I came up with a solution that I don't I saw, it's nothing amazing, but it does only a single modulus per loop: #!/usr/bin/env ruby 1.upto(100).each do |i| puts( case i % 15 when 0 then :FizzBuzz when 3,6,9,12 then :Fizz when 5,10 then :Buzz else i end ) end Andy On 9/13/17 7:34 PM, Philip Rushik wrote: > I find it hard to believe that there are actually programmers out there > that can't solve that problem. I know non-programmers that could easily > solve that problem (I asked a few). Anyways, for the sake of being > annoying, I implemented this in just about the worst way possible, here > yall go, enjoy: > > section .data > fizz: db "fizz",10 > buzz: db "buzz",10 > num: db " " > num1: db "0" > num2: db "0" > num3: db "0" > db 10 > section .text > global _start > > write_buzz: > push rsi > lea rsi, [buzz] > call write > pop rsi > ret > > write_num: > mov rax, rcx > mov r10, 10 > xor rdx, rdx > div r10 > cmp rdx, 5 > je write_buzz > cmp rdx, 0 > je write_buzz > add rdx, '0' > mov [num3], dl > xor rdx, rdx > div r10 > add rdx, '0' > add rax, '0' > mov [num2], dl > mov [num1], al > > lea rsi, [num] > write: > push rcx > mov rax, 1 > mov rdi, 1 > mov rdx, 5 > syscall > pop rcx > ret > > _start: > xor rcx, rcx > _loop: > inc rcx > call write_num > cmp rcx, 100 > jge _exit > inc rcx > call write_num > inc rcx > lea rsi, [fizz] > call write > mov rax, rcx > xor rdx, rdx > mov r10, 5 > div r10 > cmp rdx, 0 > jne _loop > call write_buzz > jmp _loop > > _exit: > mov rax, 60 > syscall > > > > ___________________________________________________________________________ > Philadelphia Linux Users Group -- http://www.phillylinux.org > Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce > General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug > ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug