FacebookTwitter

پاسخ سوالات آزمون میانترم درس زبان اسمبلی ۱۳۸۹/۰۹/۲۲

نویسنده: | تاریخ: ۲۲ آذر ۱۳۸۹ | موضوع: آموزش, زبان اسمبلی | ۳ دیدگاه

Share On GoogleShare On FacebookShare On Twitter

1) قطعه کدي بنويسيد که مقدار عددي موجود در رجيستر AL را به صورت دو کاراکتر عددي مبناي 16 تبديل و در رجيستر AX قرار دهد. 2نمره

AL TO HEX
 	.
	.
	.
	.
	XOR AH, AH
	SHL AX, 04H
	SHR AL, 04H
	LEA BX, [TEMPLATE]
	XLAT
	ROR AX, 08H
	XLAT
	ROR AX, 08H
	.
	.
	.
	.

TEMPLATE	DB "0123456789ABCDEF"

2) قطعه کدي بنويسيد که خروجي زير را نمايش دهد. 2نمره

*
**
***
****
*****
******
*******
********
*********
**********
line_str	dup 13 db '$'
 	.
	.
	.
	.
	MOV CX, 10
LP:
	MOV SI, 10
	SUB SI, CX
	MOV BYTE [line_str+SI], '*'
	MOV BYTE [line_str+SI+1], 10
	MOV BYTE [line_str+SI+1], 13
	LEA DX, [line_str]
	MOV AH, 09H
	INT 021H
	LOOP LP
	.
	.
	.

3) قطعه کد زير چه عملي انجام مي دهد؟ (معادله جبري آن چيست؟) با شرح. 2نمره

اگر AX را برابر x بگیریم

	MOV BX, AX		; BX در AX نگهداري از
	SHL BX, 02H		; 2 در BX ضرب
	ADD BX, AX		; AX با BX جمع

سه سطر بالا AX را در 5 ضرب کرده و در BX قرار می دهد. (BX <- 5x)

	MUL AX			; در خودش ضرب مي کند AX رجيستر

نتیجه این ضرب در DX:AX قرار می گیرد. (DX:AX <- x2)

	CLC				; پرچم نقلي صفر مي شود
	RCL AX, 01H		; گردش به چپ با احتساب رقم نقلي
	RCL DX, 01H		; گردش به جپ با احتساب رقم نقلي

نتیجه 3 سطر بالا این است که DX:AX در 2 ضرب می شود. (DX:AX <- 2x2)

	ADD AX, BX		; جمع مي شود AX با BX
	ADC DX, 00H		; جمع مي شود DX در صورت وجود رقم نقلي با

در این قسمت BX که یک عدد 16 بیتی است با DX:AX که یک عدد 32بیتی است جمع میگردد. (DX:AX <- 2x2 + 5x)

4) فراخواني تابع (زير برنامه) با استفاده از پشته را با مثال شرح دهيد. 2نمره.

هنگام فراخوانی یک تابع یا زیر برنامه با استفاده از دستور CALL پردازنده آدرس دستورالعمل بعد از CALL را در STACK قرار داده و ادامه اجرا به ابتدای زیر برنامه منتقل می گردد پس از اتمام زیر برنامه و اجرای دستور RET پردازنده آدرس ذخیره شده را از بالای پشته برداشته و در IP قرار می دهد، بنا بر این کنترل برنامه به دستور بعد از CALL منتقل می گردد. (در آزمون باید با یک مثال برنامه نویسی و شکل شرح داده می شد).

5) مفهوم Little Endian را شرح داده و اثر آن را در برنامه نويسي اسمبلي بنويسيد. 2نمره

معماریهای سخت افزاری که ذخیره کردن مقادیر عددی در حافظه به صورت معکوس می باشد، به این معنی که بایت با ارزش کمتر در خانه حافظه پایین تر ذخیره میشود یا به عبارت دیگر بایت کم ارزش اول در حافظه قرار میگیرد را معماری Little-Endian می گویند. اثر آن در برنامه نویسی اسمبلی زمانی آشکار میگردد که بخواهیم یک مقدار عددی بزرگتر از بایت که در یک رجیستر ذخیره شده را در حافظه ذخیره کنیم. به طور مثال اگر بخواهیم مقدار رجیستر AX را که یه عدد 16 بیتی است در حافظه ای به آدرس n ذخیره کنیم، بایت کم ارزش تر که در AL ذخیره شده در خانه nام ذخیره گردیده و سپس ایت با ارزش بیشتر که در AH قرار دارد در خانه (n+1)ام حافظه قرار می گیرد.

۳ دیدگاه

  1. فرشید مظلومی

    ۲۳ آذر ۱۳۸۹

    Post a Reply

    ممنون که پاسخ هارو گذاشتید استاد
    در سوال 3 قسمت اول عبارت جبری 2x^2 را بدست آوردم ولی بدلیل پیچیدگی کد و همچنین نداشتن تبهر و تجربه کافی آن را خط زدم(برگه سوال) لطفاً در صورت صلاحدید نمره ای که می توان برای آن در نظر گرفت لحاظ فرمایید.
    با سپاس

  2. فرشید مظلومی

    ۲ دی ۱۳۸۹

    Post a Reply

    سلام استاد
    من کد سوال اول و دوم رو با nasm نتونستم اجرا کنم !!

    j:Program FilesNASM>nasm altohex.asm -o altohex.com
    altohex.asm:1: error: label or instruction expected at start of line
    altohex.asm:2: error: attempt to define a local label before any non-local label
    s
    altohex.asm:3: error: symbol `.’ redefined
    altohex.asm:4: error: symbol `.’ redefined
    altohex.asm:5: error: symbol `.’ redefined
    altohex.asm:14: error: symbol `.’ redefined
    altohex.asm:15: error: symbol `.’ redefined
    altohex.asm:16: error: symbol `.’ redefined
    altohex.asm:17: error: symbol `.’ redefined
    ————————————————————————————————————
    j:Program FilesNASM>nasm star.asm -o star.com
    star.asm:1: error: parser: instruction expected
    star.asm:3: error: symbol `.’ redefined
    star.asm:4: error: symbol `.’ redefined
    star.asm:5: error: symbol `.’ redefined
    star.asm:18: error: symbol `.’ redefined
    star.asm:19: error: symbol `.’ redefined

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Pin It on Pinterest

Shares