Difference between revisions of "CSC231 Homework Solutions 2017"
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
--[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 17:57, 22 April 2017 (EDT) | --[[User:Thiebaut|D. Thiebaut]] ([[User talk:Thiebaut|talk]]) 17:57, 22 April 2017 (EDT) | ||
---- | ---- | ||
+ | <onlydft> | ||
=Problem 1= | =Problem 1= | ||
::<source lang="asm"> | ::<source lang="asm"> | ||
Line 851: | Line 852: | ||
</source> | </source> | ||
<!-- ========================================================= --> | <!-- ========================================================= --> | ||
− | < | + | <br /> |
=hw8_1.c= | =hw8_1.c= | ||
<br /> | <br /> | ||
Line 980: | Line 981: | ||
</source> | </source> | ||
− | =funcs.c= | + | <!-- ================================================================= --> |
+ | |||
+ | =Homework 9: funcs.c= | ||
<br /> | <br /> | ||
::<source lang="c"> | ::<source lang="c"> | ||
Line 1,049: | Line 1,052: | ||
} | } | ||
</source> | </source> | ||
− | =hanoi.asm= | + | =Homework 9: hanoi.asm= |
<br /> | <br /> | ||
::<source lang="asm"> | ::<source lang="asm"> | ||
Line 1,066: | Line 1,069: | ||
;;; nasm -f elf hanoi.asm | ;;; nasm -f elf hanoi.asm | ||
;;; ld -melf_i386 -o hanoi hanoi.o 231Lib.o | ;;; ld -melf_i386 -o hanoi hanoi.o 231Lib.o | ||
− | ;;; ./hanoi | + | ;;; ./hanoi 3 |
;;; | ;;; | ||
Line 1,157: | Line 1,160: | ||
;;; moveDisks( n-1, temp, dest, source ) | ;;; moveDisks( n-1, temp, dest, source ) | ||
− | + | popad ; get all the original parameters back | |
− | + | pushad ; and push them back in the stack | |
− | + | xchg bl, dl ; exchange source and temp | |
− | + | dec eax ; eax <-- n-1 | |
− | + | call moveDisks ; recurse | |
− | + | popad ; pop all registers back | |
− | + | ret | |
;;; ------------------------------------------------------------------ | ;;; ------------------------------------------------------------------ |