assignment 1.pdf

‫ﺗﻤﺮﯾﻦ ‪١‬‬
‫ﻣﻮﻋﺪ ﺗﺤﻮﻳﻞ‪ :‬ﺟﻤﻌﻪ ‪ ۸۹/۸/۲۱‬ﺳﺎﻋﺖ ‪۲۴:۰۰‬‬
‫ﺑﺮﻧﺎﻣﻪﺍﯼ ﺑﻨﻮﻳﺴﻴﺪ ﮐﻪ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻠﻬﺎﯼ‬
‫‪MOV‬‬
‫‪PUSH‬‬
‫‪POP‬‬
‫‪ADD‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫ﺭﺍ ﮔﺮﻓﺘﻪ ﻭ ﺁﻧﻬﺎ ﺭﺍ ﺑﻪ ﮐﺪ ﻣﺎﺷﻴﻦ ﻣﺘﻨﺎﻇﺮ ﺗﺒﺪﻳﻞ ﮐﻨﺪ‪ .‬ﺑﺮﻧﺎﻣﻪ ﺑﺎﻳﺪ ﮐﻠﻴﮥ ﺳﺒﮑﻬﺎﯼ ﺁﺩﺭﺱﺩﻫﯽ ‪ ۸۰۸۶‬ﺭﺍ ﭘﺸﺘﻴﺒﺎﻧﯽ ﮐﻨﺪ؛ ﻭ ﺩﺭ ﺻـﻮﺭﺗﯽ ﮐـﻪ‬
‫ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻧﺎﺩﺭﺳﺘﯽ ﻭﺍﺭﺩ ﺷﻮﺩ ﺧﻄﺎ ﺩﻫﺪ‪ .‬ﻣﺜﻼً‪:‬‬
‫‪Machine Code‬‬
‫‪------------------‬‬‫‪50‬‬
‫‪8B4208‬‬
‫‪81C20115‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪Assembly Code‬‬
‫‪------------------------‬‬‫‪PUSH‬‬
‫‪AX‬‬
‫‪MOV‬‬
‫]‪AX, [BP+SI+08‬‬
‫‪ADD‬‬
‫‪DX, 1501‬‬
‫‪ERROR‬‬
‫‪ERROR‬‬
‫‪‬‬
‫‪‬‬
‫‪PUSH‬‬
‫‪MOV‬‬
‫‪10‬‬
‫]‪CX, [AX+SI‬‬
‫ﺗﻮﺟّﻪ ﮐﻨﻴﺪ ﮐﻪ ﺍﻋﺪﺍﺩﯼ ﻧﻈﻴﺮ ‪ AFDE‬ﺑﺎ ﻳﮏ »ﺣﺮﻑ« ﺷﺮﻭﻉ ﻣﯽﺷﻮﻧﺪ‪ .‬ﺑﺮﺍﯼ ﺭﺍﺣﺘﯽ ﮐﺎﺭ ﻣﯽﺗﻮﺍﻧﻴﺪ ﻓﺮﺽ ﮐﻨﻴﺪ ﮐﻪ ﺩﺭ ﭼﻨـﻴﻦ ﺣﺎﻟﺘﻬـﺎﻳﯽ‬
‫ﺍﺯ ﭘﻴﺸﻮﻧﺪ »‪ «۰‬ﺍﺳﺘﻔﺎﺩﻩ ﻣﯽﮐﻨﻴﻢ‪ .0AFDE :‬ﺑﻨﺎﺑﺮﺍﻳﻦ ﺗﻤﺎﻡ ﺍﻋﺪﺍﺩ ﻭﺭﻭﺩﯼ ﺑﺎ ﻳﮏ ﺭﻗﻢ ‪ ۹-۰‬ﺁﻏﺎﺯ ﻣﯽﺷﻮﻧﺪ‪.‬‬
‫ﺑﺮﻧﺎﻣﮥ ﺷﻤﺎ ﺑﺎﻳﺪ ﺑﺘﻮﺍﻧﺪ ﻋﻼﻭﻩ ﺑﺮ ﺗﺒﺪﻳﻞ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﺍﺳﻤﺒﻠﯽ ﺑﻪ ﮐﺪ ﻣﺎﺷﻴﻦ‪ ،‬ﻋﻤﻞ ﺑﺮ ﻋﮑﺲ ﺭﺍ ﻧﻴﺰ ﺍﻧﺠﺎﻡ ﺩﻫﺪ؛ ﻳﻌﻨﯽ ﮐﺪ ﻣﺎﺷﻴﻦ ﻣﺘﻨـﺎﻇﺮ‬
‫ﻼ ﻭﺭﻭﺩﯼ ‪ 81C20115‬ﻣﺘﻨﺎﻇﺮ ﺩﺳـﺘﻮﺭﺍﻟﻌﻤﻞ‬
‫ﺑﺎ ﻳﮑﯽ ﺍﺯ ﭼﻬﺎﺭ ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻓﻮﻕ ﺭﺍ ﮔﺮﻓﺘﻪ ﻭ ﺩﺳﺘﻮﺭ ﺍﺳﻤﺒﻠﯽ ﻣﺘﻨﺎﻇﺮ ﺭﺍ ﺧﺮﻭﺟﯽ ﺩﻫﺪ‪ .‬ﻣﺜ ً‬
‫‪ ADD DX, 1501‬ﺍﺳﺖ‪ .‬ﺩﺭ ﺻﻮﺭﺗﯽ ﮐﻪ ﻭﺭﻭﺩﯼ ﻣﺘﻨﺎﻇﺮ ﻫﻴﭻ ﻳﮏ ﺍﺯ ‪ ٤‬ﺩﺳﺘﻮﺭﺍﻟﻌﻤﻞ ﻧﺒﺎﺷﺪ‪ ،‬ﻳﺎ ﺑﻪ ﻫﺮ ﺻﻮﺭﺗﯽ ﻧﺘﻮﺍﻥ ﺁﻥ ﺭﺍ ﺗﺮﺟﻤﻪ ﮐﺮﺩ‪،‬‬
‫ﺑﺮﻧﺎﻣﻪ ﺑﺎﻳﺪ ﺧﻄﺎ ﺩﻫﺪ‪.‬‬
‫ﻧﮑﺘﮥ ‪ :١‬ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﺑﻪ ﺯﺑﺎﻥ ﺩﻟﺨﻮﺍﻩ ﺧﻮﺩ ﺑﻨﻮﻳﺴﺪ‪ .‬ﭘﻠﺘﻔﺮﻣﻬﺎﯼ ﻭﻳﻨﺪﻭﺯ ﻭ ﻟﻴﻨﻮﮐﺲ ﻣﻮﺭﺩ ﭘﺬﻳﺮﺵ ﺍﺳﺖ‪.‬‬
‫ﻧﮑﺘﮥ ‪ :٢‬ﺑﻪ ﻫﻤﺮﺍﻩ ﻓﺎﻳﻞ ﺍﺟﺮﺍﻳﯽ‪ ،‬ﮐﺪ ﺳﻮﺭﺱ ﺭﺍ ﻧﻴﺰ ﺑﻔﺮﺳﺘﻴﺪ‪ .‬ﺩﺭ ﻳﮏ ﻓﺎﻳﻞ ‪ TXT‬ﻣﺸﺨّﺺ ﮐﻨﻴـﺪ ﮐـﻪ ﭘﻠﺘﻔـﺮﻡ‪ ،‬ﺯﺑـﺎﻥ ﺑﺮﻧﺎﻣـﻪ ﻧﻮﻳﺴـﯽ‪ ،‬ﻭ‬
‫ﻣﺮﺍﺟﻌﯽ ﮐﻪ ﺍﺯ ﺁﻧﻬﺎ ﺍﺳﺘﻔﺎﺩﻩ ﮐﺮﺩﻩﺍﻳﺪ ﭼﻪ ﺑﻮﺩﻩﺍﻧﺪ‪.‬‬
‫ﻧﮑﺘﮥ ‪ :۳‬ﺑﺮﻧﺎﻣﮥ ﺷﻤﺎ ﺑﺎ ﺣﺪﻭﺩ ‪ ۵‬ﻣﻮﺭﺩ ﺩﺳﺘﻮﺭ ﺯﺑﺎﻥ ﺍﺳﻤﺒﻠﯽ ﻭ ‪ ۵‬ﻣﻮﺭﺩ ﺩﺳﺘﻮﺭ ﺯﺑﺎﻥ ﻣﺎﺷﻴﻦ ﺗﺴﺖ ﻣـﯽﺷـﻮﺩ‪ .‬ﺗﻌـﺪﺍﺩ ﺗﺴـﺘﻬﺎﻳﯽ ﮐـﻪ ‪pass‬‬
‫ﺷﻮﻧﺪ ﻧﻤﺮﮤ ﺷﻤﺎ ﺭﺍ ﻣﺸﺨّﺺ ﻣﯽﮐﻨﻨﺪ‪.‬‬
‫ﻼ‬
‫ﻧﮑﺘﮥ ‪ :۴‬ﻓﺮﺽ ﮐﻨﻴﺪ ﺷﻤﺎﺭﮤ ﺩﺍﻧﺸﺠﻮﻳﯽ ﺷﻤﺎ ‪ X‬ﺍﺳﺖ‪ .‬ﻫﻤﮥ ﻓﺎﻳﻠﻬﺎ ﺭﺍ ﺩﺭ ﭘﻮﺷﻪﺍﯼ ﺑﻪ ﻧـﺎﻡ ‪ X‬ﺭﻳﺨﺘـﻪ ﻭ ﭘﻮﺷـﻪ ﺭﺍ ﻓﺸـﺮﺩﻩ ﮐﻨﻴـﺪ )ﻣـﺜ ً‬
‫‪ X.rar‬ﻳﺎ ‪ .(X.tar.gz‬ﺳﭙﺲ ﻓﺎﻳﻞ ﻓﺸﺮﺩﻩ ﺭﺍ ﺑﻪ ﻣﻦ ‪ email‬ﮐﻨﻴﺪ‪ .‬ﺁﺩﺭﺱ ‪ email‬ﻣﻦ ﺭﺍ ﺍﺯ ‪ http://ce.sharif.edu/~dousti‬ﺑﺮﺩﺍﺭﻳـﺪ‪.‬‬
‫‪١‬‬
‫ﻋﻨﻮﺍﻥ ﺍﻳﻤﻴﻞ ﺷﻤﺎ ﺑﺎﻳﺪ ‪ [SSD]X‬ﺑﺎﺷﺪ‪ .‬ﻣﺜﻼً ﺍﮔﺮ ﺷﻤﺎﺭﮤ ﺩﺍﻧﺸﺠﻮﻳﯽ ﺷﻤﺎ ‪ ۸۷۳۰۱۴۰۹‬ﺍﺳﺖ‪ ،‬ﺍﻳﻤﻴﻠـﯽ ﺑـﺎ ﻋﻨـﻮﺍﻥ ‪[SSD]87301409‬‬
‫ﺑﺰﻧﻴﺪ‪ ،‬ﻭ ﻓﺎﻳﻞ ‪ 87301409.rar‬ﺭﺍ ﺍﺭﺳﺎﻝ ﮐﻨﻴﺪ‪.‬‬
‫‪ ١‬ﺁﺩﺭﺱ ‪ email‬ﺭﺍ ﻣﺴﺘﻘﻴﻤﺎً ﻧﺪﺍﺩﻡ ﭼﻮﻥ ﻣﯽﺧﻮﺍﺳﺘﻢ ﺑﺎ ﻭﻳﮋﮔﯽ ‪ email hide‬ﺁﺷﻨﺎ ﺷﻮﻳﺪ‪ .‬ﻭﻟﯽ ﺍﮔﺮ ﻟﻴﻨﮏ ﻣﺴﺘﻘﻴﻢ ﺧﻮﺍﺳﺘﻴﺪ ﻣﯽﺗﻮﺍﻧﻴﺪ ﺑﻪ ﻧﺎﻡ ﮐﺎﺭﺑﺮﯼ )‪(dousti‬‬
‫ﻣﻦ ﺩﺭ ‪ CE‬ﺍﻳﻤﻴﻞ ﺑﺰﻧﻴﺪ‪.‬‬