ادرس فیزیکی و منطقی عملوند اول و در کدام خانه حافظه چه مقداری قرار میگیرد:
اطلاعات: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
خیلی ممنون میشم کمکم کنید
ادرس فیزیکی و منطقی عملوند اول و در کدام خانه حافظه چه مقداری قرار میگیرد:
اطلاعات: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
خیلی ممنون میشم کمکم کنید
41010---->99 H
41011---->12 H
آدرس فیزیکی:26080
-----------------------------
-----------------------------
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 در 12:00 عصر
سلام
در مورد قسمت آخر سوال mov [bp][si]+10 , dx ثبات پیش فرض ss نیست ؟
آدرس منطقی نباید ss:bp+si+10 محاسبه شود ؟
بله درسته ممنون که یادآوری کردین ، من اشتباه نوشتم فکر میکنم بخاطر بیخوابی بوده ،ساعت ارسال پستم مال 5:30 هستدر مورد قسمت آخر سوال mov [bp][si]+10 , dx ثبات پیش فرض ss نیست ؟
آدرس منطقی نباید ss:bp+si+10 محاسبه شود ؟
سومیین دستور به این شکل اصلاح میشه:
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
موفق باشید
آخرین ویرایش به وسیله xman_1365_x : سه شنبه 19 اردیبهشت 1391 در 15:45 عصر
یک سوال داشتم
فرض کنید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