PDA

View Full Version : ایجاد آرایه یا جدول



gilaseabi
چهارشنبه 18 آبان 1390, 22:03 عصر
سلام من میخوام یه جدول تو اسمبلی درست کنم، فکر میکنم باید آرایه دوبعدی استفاده کنم درسته ؟ اصلا نمیدونم باید از کجا شروع کنم:ناراحت: میخوام به این صورت باشه که مثلا نام ستون ها : نام ، نام خانوادگی، تاریخ تولد، نام پدر و ... باشه و بعد بهشون مقدار بدم و نمایشش بدم . لطفا راهنماییم کنید.

xman_1365_x
یک شنبه 22 آبان 1390, 08:01 صبح
با استقاده از ساختمان هم میشه اما چون تدریس نمیشه نمیگم،برای کار شما یک بعدی هم میشه انجام داد برای دو بعدی سخت میشه باید اول پروسیجر دسترسی به عناصر رو بنویسید.

راه یک بعدی اینه با وقفه رفتن به کرسر که یه ماکرو یا پروسیجر مینویسیدبه اسم gotoxy و با پارامتر های ارسالی به نقطه دلخواه میرین و رشته رو نمایش میدین
حالا دقیق نمیدونم میخوای چی کار کنی اما اگر فقط ذخیره در آرایه همراه با نمایش باشه سادست (یعنی بعد از طراحی جدول کرسر بره به سطر و ستون دلخواه بعد ورودی بگیره نمایش بده و ذخیره)
اگر بعدا بخوای روی آرایه یک بعدی کار کنی کمی پیچیده میشه چون باید کلید تعیین کنید و چندین ارایه دارین که هر کدوم یک نوع رو میگیره یا یک ارایه که همه انواع پشت هم لیست میشه که حالت دوم ساده تر هست من حالت اول رو قدیما نوشتم خیلی باید کد زد که موازی دیده شن یه جور شبیه سازی ساختمان شد.
شروع کن مشکلی بود بپرس
قبل هرچی باید یک الگوریتم عملی توی ذهن داشته باشی و روی کاغذ بیاری قبل از کد زدن
موفق باشی

gilaseabi
شنبه 05 آذر 1390, 16:46 عصر
سلام
میخوام جدول رو نمایش بدم . باید آرایه دوبعدی به کار ببرم . میشه یه راهنمایی برای تعریف داده تو آرایه دوبعدی بگید ؟ فرمولش رو پیدا کردم ولی نمیدونم تو قسمت داده باید مقدار بدم یا کد؟؟ میخوام محصولات یک فروشگاه رو با قیمتهاشون و یک کد محصول نمایش بدم . مثلا آرایه 3*6.
از راهنماییهاتون ممنون

gilaseabi
شنبه 05 آذر 1390, 22:33 عصر
ببخشید، من جدول رو طراحی کردم با استفاده از کدهای خطوط ، مقدار هارو هم تو همون قسمت داده براش تعریف کردم ، فقط الآن یه سوال دارم بعد اگه بخوام جستجو و پیمایش بکنم، امکانش هست ؟ یا باید طور دیگه ای داده هام رو تعریف کنم ؟ مثلا کاربر کد محصول رو وارد کنه و اسم محصول و قیمتش نمایش داده بشه؟ این یک خط از تعریف داده هام ....(کد، نام محصول، قیمت)
table ..........
0BAH,'1001 ' , 0BAH, 'CHIPS' 0BAH, '500' ,0BAH,CR,LF
با شکل ظاهریش مشکل ندارم فقط نمیدونم این کارم همون تعریف آرایه دوبعدی ؟ و اینکه نحوه دسترسیش ...
اگر سوالم مبهمه بگید. لطفا جواب بدید.

xman_1365_x
دوشنبه 07 آذر 1390, 16:24 عصر
فکر میکنم نمایش جدول و ... رو مشکلی ندارین و فقط تعریف آرایه دو بعدی و دسترسی به عناصر هست که با دو لینک زیر مشکلتون حل میشه!

برای تعریف و کار با آرایه های دو بعدی لینک زیر رو مطالعه کنید البته برنامه ای هم که من قبلا نوشتم هم که جستجو نکردین

Composite Data Types (http://www.creative.net.au/mirrors/asm/CH05/CH05-2.html)

مثال:
Multidimensional Array Access (http://www.creative.net.au/mirrors/asm/CH05/CH05-4.html#HEADING4-343)

فکر نمیکنم سخت باشه چون مطالب که همون کتاب ساختمان داده هست که پیاده سازی میکنیم اگر سوالی بود بفرمایید.
موفق باشی

gilaseabi
شنبه 12 آذر 1390, 20:48 عصر
ببخشید یه سوال دیگه داشتم :
چطور میشه مشخص کرد که یه آدرس مشخص به یه مقدار مشخص اشاره کنه ؟ میخوام یه آرایه به آدرس کد محصولات معرفی کنم و مقدار درون آرایه ها قیمت محصولات باشن ، مثلا آدرس 5000 به 2000 اشاره کنه و وقتی کاربر مقدار 5000 (کد محصول) رو وارد میکنه سیستم اون رو به عنوان آدرس در نظر بگیره و مقدار 2000 (قیمت) که در اون آدرس رو درنظر بگیره؟؟
میخواستم یه آرایه تو آدرس 5000 تعریف کنم هر چی رو که امتحان کردم نشد ؟؟؟ هر چی که فکر میکنم و امتحان میکنم نمیشه ؟؟؟؟

xman_1365_x
دوشنبه 14 آذر 1390, 16:14 عصر
ببخشید یه سوال دیگه داشتم :
چطور میشه مشخص کرد که یه آدرس مشخص به یه مقدار مشخص اشاره کنه ؟ میخوام یه آرایه به آدرس کد محصولات معرفی کنم و مقدار درون آرایه ها قیمت محصولات باشن ، مثلا آدرس 5000 به 2000 اشاره کنه و وقتی کاربر مقدار 5000 (کد محصول) رو وارد میکنه سیستم اون رو به عنوان آدرس در نظر بگیره و مقدار 2000 (قیمت) که در اون آدرس رو درنظر بگیره؟؟
میخواستم یه آرایه تو آدرس 5000 تعریف کنم هر چی رو که امتحان کردم نشد ؟؟؟ هر چی که فکر میکنم و امتحان میکنم نمیشه ؟؟؟؟




.DATA
pkey db "press any key...$"
ORG 1388h
X db 12 DUB(1)
ORG 0012h

.stack 32

.code
start:
; set segment registers:
.STARTUP
mov es, ax

lea ax,x

MOV byte PTR [01388H],2 ;1388h =5000d

MOV Al,[01388H]
;=
mov bl,x

lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx

; wait for any key....
mov ah, 1
int 21h

mov ax, 4c00h ; exit to operating system.
int 21h

end start