ورود

View Full Version : سوال: ادرس فیزیکی و منطقی عملوند اول



mahdi doanload
دوشنبه 18 اردیبهشت 1391, 22:32 عصر
ادرس فیزیکی و منطقی عملوند اول و در کدام خانه حافظه چه مقداری قرار میگیرد:
اطلاعات:cx:8791 ,dx:1299 ,cs:1000, ds:2000, ss:3000, si:4000, di:5000, bx:6080, bp:7000, ax:25ff


mov [si],al
mov [bx],ax
mov [bp][si]+10,dx

خیلی ممنون میشم کمکم کنید

amir.bakhtiari
سه شنبه 19 اردیبهشت 1391, 03:11 صبح
41010---->99 H
41011---->12 H
آدرس فیزیکی:26080

xman_1365_x
سه شنبه 19 اردیبهشت 1391, 04:53 صبح
-----------------------------
-----------------------------
mov [si],al

segment:offset
2000:4000 logical address
20000=2000*16
04000
24000 physical address

2000:4000 = 24000
value=ff

-----------------------------
-----------------------------
mov [bx],ax

2000:6080
20000
06080
26080

2000:6080 = 26080
value=ff

2000:6081 = 26081
value=25
-----------------------------
-----------------------------
mov [bp][si]+10,dx

7000:4000+a logical address
7000
400a
b00a
2000:b00a
20000
0b00a
2b00a physical address

7000:4000+a = 2b00a
value=99

7000:4000+b = 2b00b
value=12
-----------------------------

فکر کنم واضح هست اگر سوالی داشتین بپرسین
موفق باشی

mahdi doanload
سه شنبه 19 اردیبهشت 1391, 11:27 صبح
اخری را اگه میشه بیشتر توضیح بدید ممنون میشم.
اگه یه لینکی یا عکسی یا توضیحی که کلا حافظه چجوری هست که بتونیم هر سوالی که باشه حل کرد و کلا حافظه را درک کرد خییییییییییییییییییییلی ممنون میشم:قلب:

zahrabardestani
سه شنبه 19 اردیبهشت 1391, 12:01 عصر
سلام
در مورد قسمت آخر سوال mov [bp][si]+10 , dx ثبات پیش فرض ss نیست ؟
آدرس منطقی نباید ss:bp+si+10 محاسبه شود ؟

xman_1365_x
سه شنبه 19 اردیبهشت 1391, 15:17 عصر
در مورد قسمت آخر سوال mov [bp][si]+10 , dx ثبات پیش فرض ss نیست ؟
آدرس منطقی نباید ss:bp+si+10 محاسبه شود ؟

بله درسته ممنون که یادآوری کردین ، من اشتباه نوشتم فکر میکنم بخاطر بیخوابی بوده ،ساعت ارسال پستم مال 5:30 هست

سومیین دستور به این شکل اصلاح میشه:

physical address = segment*16 + offset

-----------------------------
mov [bp][si]+10,dx

segment:offset
ss:[bp+si+a]
3000:7000+4000+a logical address

7000+4000+a=b00a

3000:b00a
30000
0b00a
3b00a physical address

3000:7000+4000+a = 3b00a
value=99

3000:7000+4000+b = 3b00b
value=12
-----------------------------



اخری را اگه میشه بیشتر توضیح بدید ممنون میشم.


در کل وقتی شما مقداری رو به خانه ای از حافظه انتقال میدین
با توجه به این دستور physical address = segment*16 + offset

آدرس فیزیکی آن محاسبه میشود نکته ای که وجود داره، اینکه مبدا یا مبنا سگمنت کدام ثبات میباشد تا آدرس بر اساس آن سگمنت محاسبه شود

هنگامی که شما از دستورات عادی mov استفاده میکنید سگمنت ds به عنوان مبدا میباشد
هنگامی که از دستورات انتقال کار با رشته پردازنده استفاده کنید سگمنت مبنا es
و هنگامی که با پشته کار کنید که ثبات آن bp,sp باشد با سگمنت مبدا ss محاسبه می شود

و بعد از تشخیص سگمنت در 16 ضرب شود یعنی یک صفر به آن اضافه میشه

آفست هم که نیازی به توضیح نداره تمامی پارامتر ها رو با هم جمع کنید

http://www.logix.cz/michal/doc/i386/chp17-02.htm

موفق باشید

blue.boy
شنبه 11 آذر 1391, 20:30 عصر
یک سوال داشتم
فرض کنیدcs=1000h,ds=2000h,ss=3000,si=4000,di=5000h ,bx=6080h,bd=7000h.ax=25ffh,cx=8791h,dx=1299h

آدرس فیزیکی حافظه و مقداری که در آن قرار میگیرد را در هر مورد مشخص کنید
mov [si],al
mov[bx],ax
mov[si+bx+8],ah
mov[di+6], bx
di][bx]+28,cx
bd][di]+10,dx