دانشگاه آزاد اسلامی واحد تهران مرکز – دانشکده فنی – گروه کامپیوتر

درس زبان ماشین و برنامه نویسی اسمبلی  کد 3672 دوره کارشناسی رشته کامپیوتر

نیمسال اول سال تحصیلی 84-83 تاریخ امتحان 24/10/83مدت امتحان 2 ساعت

طرح پرسش نامه و تکثیر: رفیع علامه

پرسش 1

برای تغییر ساعت سیستم از تابع AH=2D  وقفه 21H استفاده میشود. CH ساعت (23..0) ، CL دقیقه (59..0)، DH و DL ثانیه و صدم ثانیه را مشخص میکنند.  برنامه ای برای دریافت ساعت از صفحه کلید بصورت hh:mm با استفاده از تابع 0A و ذخیره آن در مکان time ، و تبدیل آن به عدد در تابع از نوع far به نام integer بنویسید. سپس با مقدار دهی ثباتهای فوق (ثانیه و صدم ثانیه 0 ) ساعت سیستم را به مقدار وارد شده تغییر دهید. در صورت امکان از فرمان های بیت پرداز استفاده کنید. (4)

 

پرسش 2

الف)  برنامه ای برای تبدیل محتوای AX به معادل  BCD و ذخیره آن در مکانی به نام adadbcd بنویسید. تبدیل در proc tabdil far  با توجه به علامت عدد در AX ، انجام شود. در صورت امکان از فرمان های بیت پرداز استفاده کنید. (2)

ب) proc tabdil far در برنامه فوق را در فایلی جدا از برنامه اصلی بنویسید. (1)

ج) اگر برنامه فراخواننده در فایل main.asm باشد و برنامه tabdil در فایل procs.asm ، مراحل بدست آوردن فایل اجرایی main.exe  را بنویسید. (1)

 

پرسش 3

الف)برنامه ای برای دریافت یک سطر متن حداکثر 80 کاراکتری از صفحه کلید و ذخیره آن در مکان text با تابع 0A بنویسید. در این برنامه با استفاده از فرمان های repne وscasb تعداد کاراکترهای'a'  و ‘A’ در رشته دریافتی را شمارش ( با در نظر گرفتن کاراکتر اول و آخر ) و با تابع 09 پیغام “number of a’s and A’s are = # #” تعداد شمارش شده را نمایش دهید. تبدیل در proc far مناسبی به نام itoa خاص دورقم بدون علامت با استفاده از فرمان های بیت پرداز انجام شود. (4)

 

ب) نحوه قرار گرفتن اطلاعات در data segment و stack segment را کشیده و آدرس های offset برای هر واحد اطلاعاتی را مشخص کنید.(1)

 

پرسش 4

الف) آیا object code یک اینتراپت در حجم برنامه فراخواننده تاثیر میگذارد؟ توضیح دهید.(0.5)

ب) چرا source برنامه های script در اینترنت به کامپیوتر کاربر انتقال داده میشود؟ (0.5)

 

پرسش 5

الف) معادل دهدهی عدد اعشاری C4642000 با توجه به قالب زیر را بنویسید. (1)

0

22

23

30

31

M

e'

s

علامت عدد= s تعداد بیتهای اختصاص داده شده به b=e'  , e'=e+2b-1 مانتیس=m

ب) نمایش BCD عدد -1 چیست؟(0.5)

 

پرسش 6

test ah,20h  برای ah=61h چه تاثیری برzf  دارد.

 sar ah,1 برای ah=81h چه تاثیری برof  و sf دارد.

Sub ah,40h برای ah=30h چه تاثیری برcf  دارد.(1)

  

پرسش 7

نمایش داخلی و شمارنده مکان برای هر سطر برنامه را مشخص کنید. (3)

 

datasg

Segment

 

string

‘ABCDEF’

 

aa

dw   ?

 

bb

dw   250,10,-1

 

x

db 5 dup(16)

 

datasg

Ends

 

 

 

 

codesg

Segment

 

 

assume cs:codesg,ds:datasg

 

main

proc far

mov ax,seg datasg =B8 + datasg رزرو 2 بایت برای

 

mov ax,seg datasg

mov ds,ax=8E D8

 

mov ds,ax

mov ax=A1

 

mov ax,aa+1

push ax=  50

 

push ax

mov ax=B8

 

mov ax,0

inc ax= 40

l1:

inc ax

cmp al=3C

 

cmp al,5

jne=75

 

jne l2

mov cx=8B0E

 

mov cx,bb+2

loop=E2

 

loop l1

ret=CB

l2:

Ret

 

main

Endp

 

codesg

Ends

 

 

end main

 

پرسش 8

با توجه به پرسش7 mov ax,aa  سریع تر اجرا میشود یا mov ax,0  ، با استفاده از مراحل اجرایی فرمان ها توضیح دهید. (0.5)

 

همواره سربلند باشید – رفیع علامه