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

 

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

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

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

پرسش 1

یک عدد بدون علامت در AX ذخیره شده است. معادل hexa-decimal آنرا بر روی صفحه مانیتور نمایش دهید. تبدیل با استفاده از فرمانهای بیت پرداز در proc near به نام tabdil  انجام پذیرد. عدد تبدیل شده در مکانی به نام hexa در سگمنت داده ذخیره شود و با استفاده از تابع 09 آنرا نمایش دهید. (3)

 

پرسش 2

الف)  برنامه ای برای جمع دو عدد 2 بایتیflda  و fldb تعریف شده در سگمنت داده (برنامه main )  که قبل از فراخوانی proc add2 far  (برنامه جمع دو عدد) توسط برنامه main در استک قرار داده شده اند را بنویسید. با استفاده از ثبات BP اعداد بهproc add2  انتقال داده شوند. موقعیت SP و BP و محتویات استک را نمایش دهید. (2)

ب) proc add2  در برنامه فوق را در فایلی جدا از برنامه main نوشته و متغیر های flda و fldb را بعنوان متغیر هایpublic  در main و خارجی در add2 معرفی و بدون استفاده از استک با یگدیگر جمع شوند . (1)

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

 

پرسش 3

الف)برنامه ای برای دریافت یک سطر متن حداکثر 80 کاراکتری از صفحه کلید و ذخیره آن در مکان text با تابع 0A بنویسید. با استفاده از فرمان های repne , scasb و بیت پرداز تعداد کلمات رشته وارد شده را شمارش و اول هر کلمه را (با در نظر گرفتن کلمه اول رشته) به معادل حرف بزرگ آن تبدیل کنید. با استفاده از تابع 09 رشته تغیر داده شده و تعداد کلمات شمارش شده را نمایش دهید. تبدیل تعداد کلمات شمارش شده از interger به ASCII در proc far مناسبی به نام itoa خاص دورقم بدون علامت با استفاده از فرمان های بیت پرداز انجام شود. (4)

 

پرسش 4

الف) تفاوتهای زبانهای سطح با لا و پایین را فهرست وار توضیح دهید.(0.5)

ب) کاربرد زبانهای اینترپرتری را توضیح دهید.(0.5)

 

پرسش 5

الف) معادل 3/10 – (منفی ده سوم) را در قالب زیر نمایش دهید. (1)

0

22

23

30

31

M

e'

s

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

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

ج) FFFFFFFF چه عددی در مکمل 2 و مقدار علامت است ؟ (0.5)

پرسش 6

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

 neg ah برای ah=80h چه تاثیری برof  و sf دارد.

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

 

پرسش 7

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

 

datasg

Segment

 

string

db ‘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 cl=8A0E

 

mov cl,string+1

loop=E2

 

loop l1

ret=CB

l2:

Ret

 

main

Endp

 

codesg

Ends

 

 

end main

 

پرسش 8

الف)pipelining  را با استفاده از یک شکل مناسب توضیح دهید. (1)

ب)mov ax,ds:0000  سریع تر اجرا میشود یا mov ax,0  ، با استفاده از مراحل اجرایی فرمان ها توضیح دهید. (1)

 

 

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