من معادل دستورات AND, OR, ADD, XOR, NOT که از دستورات اسمبلی هستند در Vb میخوام.
با تشکر-
Printable View
من معادل دستورات AND, OR, ADD, XOR, NOT که از دستورات اسمبلی هستند در Vb میخوام.
با تشکر-
به غیر از add بقیه شون به همین صورت تو vb هم استفاده میشن.
add رو هم نمیدونم، شاید اونم هست.
میشه برای هرکدوومشون یه مثال بزنی. مثلا یکی 32 بیتی و یکی هم 16 بیتینقل قول:
ممنون
منظورتون رو از 32 بیتی و 16 بیتی متوجه نمیشم.
(من تا حالا تو vb نشنیدم کسی از 32 بیتی یا 16 بیتی صحبتی بکنه)
هر جوری راحتری مثال بزن :10:نقل قول:
اینم مثال، البته برای مقادیر boolean ، مقادیر numeric هم به همین صورته (که احتمالا خودت نحوه محاسبش رو میدونی)کد:Dim a As Boolean, b As Boolean, c As Boolean
a = True
b = False
c = a And b 'resault : False
c = a Or b 'resault : True
c = Not a 'resault : False
c = a Xor b 'resault : True
(32 بیتی و 16 بیتی رو هم الآن متوجه شدم منظورتون چی بود :31: )
در رابطه با عملگر ADD هم تو VB عملگری با این نام نداریم :13: (تو msdn مایکروسافت هم نبود)
ولی اگه بگی این عملگر چی کار میکنه، احتمالا بتونم معادل Vb اون رو بهت بگم. (چون من asm زیاد کار نکردم)
سلام
این اعمال بجز روی دیتاهای Boolean روی اعداد هم انجام میگیرد
کدهای من تحت VB9 یا همان VB.Net2008 هستند
دلیل جواب ها هم کاملاً مشخص است و ذهنی هم قابل حل است، به اعمال بیتهای نظیر مربوط میشود.کد:'16Bit
Dim x As UShort
'Dim x As UInt16
Dim y As UShort
'Dim y As UInt16
Dim z As UShort
'Dim z As UInt16
x = 25 '&H19
y = 12 '&H0C
z = x Xor y
'z = 8
'32Bit
Dim x As UInteger
'Dim x As UInt32
Dim y As UInteger
'Dim y As UInt32
Dim z As UInteger
'Dim z As UInt32
x = 25 '&H19
y = 12 '&H0C
z = x And y
'z = 0
البته در vb6 هم مشکلی ندارد، در آن زمان متغییر 16 بیتی Integer و 32 بیتی Long بوده.
سلام
ضمناً یادم رفت دستور معادل ADD در VB9 همان =+ است ولی در VB6 باید از + معمولی استفاده کرد.
موفق باشید.کد:'ASM
ADD eax, ebx
'VB6
X = X + Y
'VB9
X += Y
از دوستان خیلی ممنون. راستش من And را با Add اشتباه گرفته بودم, پس ببخشید. :11:
من که چیزی نفهمیدم
سلام
And و Or و Xor و not را که انشا ا... بلدید
مثلاً And باید هر دو سمتش true یا 1 باشد تا جواب True یا 1 دهد
And روی اعداد عمل بسیار مرسومی است و در مبحث فلاگها بشدت کاربرد دارد. که موجب And تک تک بیت ها میشود.
در اصل همانطور که میدانید تمام اطلاعات بنیادین رایانه صفر و یک هستند ولی شاید ندانید که کوچک ترین و پایه ای ترین مدار پردازش در دنیای دیجیتال هین اعمال ساده And و Or و Not هستند.کد:مبنای ده
167 AND 109 === 37
مبنای دو
10100111 عدد اول
01101101 عدد دوم
--------
00100101 حاصل
یعنی تمام CPU و رایانه شما با این اعمال ساده کار میکند.
واحد محاسبات منطقی CPU برای آنکه دو عدد را با هم جمع کنید از مداراتی شامل همین And و Or و Not استفاده میکند.
واحد مدیریت حافظه....
حتی RAM های پرسرعت Static که اغلب گران هستند و در داخل خود CPU و مدارات میکروپروسسوری استفاده میشوند، از همین اعمال برای ذخیره اطلاعات دیجیتالی استفاده میکنند.
شاید برایتان عجیب باشد که این اعمال چگونه میتوانند داده های را مثل یک مخزن نگه داری کننند ولی واقعیت دارد...
تمام پردازش ها در دنیای دیجیتال به وسیله پردازش های پایه And و Or و Not انجام میشود.
البته And و Or هم اعمالشان طبق قانون دمورگان از روی یکدیگر قابل پیاده سازی است،
به این معنی که صرف وجود جفت And و Not یا جفت Or و Not برای هر پردازشی در دنیای دیجیتال کافیست...!
شاید برایتان سخت باشد قبول کنید این همه کارهای رایانه ها، برنامه های پیچیده، بازی های سه بعدی با امکانات و گرافیک و... چطور در ذات توسط And و Or و Not در CPU پردازش و اجرا میشوند.
ولی جوابش ساده است..... !
همانطوری که تمام انها فقط با یک یا صفر کار میکنند، ترکیب این دو حالت چطور همچین دنیایی را میسازد؟؟؟!!