vahidmy

وبلاگ شخصی وحید محمدی

vahidmy

وبلاگ شخصی وحید محمدی

وحیدمی

وبلاگ شخصی وحید محمدی . یک تایپیست که عاشق علم و تجربه است.


آدرس وبلاگ وحیدمی :

Home Page


https://vahidmy.blog.ir

+


Archive

آرشیو و بایگانی وبلاگ وحیدمی

https://vahidmy.blog.ir/archive

+


نقشه وبلاگ وحیدمی:

Sitemap

https://vahidmy.blog.ir/sitemap.xml

+

خوراکخوان وبلاگ وحیدمی

Feed

RSS

https://vahidmy.blog.ir/rss

+

آدرس مورد استفاده خزنده ها روباتها و موتورهای جستجوگر

Robot

https://vahidmy.blog.ir/robots.txt


+

مشخصات وبلاگ وحیدمی:


ساعات انتشار پست جدید وبلاگ :

بیست و چهار ساعته

وضعیت انتشار پست : نامنظم . در طول شبانه روز و در صورت صلاحدید ؛ پست جدید منتشر می کنم.


نام مدیر : وحید محمدی

گونه : وبلاگ شخصی با آدرس اختصاصی و محتوای عمومی

ژانر : تمام ژانرها

کاربرد : همه منظوره

هدف وبلاگ : به اشتراک گذاشتن دانش و تجربه با مردم و پرداخت زکات علم

مقصد مدیر وبلاگ : کسب رضای خداوند .

جنس وبلاگ : وبلاگ شخصی

تاریخ تاسیس : تیر 1398 خورشیدی



موضوعات وبلاگ : تمام علوم و فنون و مسائل مختلف در تمام زمینه


کپی برداری از مطالب وبلاگ وحیدمی به شرط لینک دادن به آدرس اصلی وبلاگ با دامنه vahidmy.blog.ir ، بلامانع و آزاد است . با خیال راحت ، کپی برداری نمایید . هیچگونه کپی رایت و انحصار برای وبلاگ وحیدمی ، وجود ندارد .

بروزرسانی:

وبلاگ وحیدمی منحصرا توسط سایت بلاگ دات آی آر به آدرس blog.ir میزبانی می شود . بنابراین بجز دامنه vahidmy.blog.ir سایر دامنه ها جعلی و فیک و خطرناک هستند .
برای مشاهده نکات جدید و ترفندهای امنیتی لطفا به آدرس زیر مراجعه فرمایید:

https://vahidmy.blog.ir/post/1



آدرس وبلاگهای تخصصی :

https://spasm.blog.ir

https://fasmy.blog.ir

https://binasm.blog.ir

طبقه بندی موضوعی
مطالب پربحث‌تر
  • ۰۱/۰۴/۱۱
    adc
نویسندگان
پیوندها

BTC

دوشنبه, ۲۰ دی ۱۴۰۰، ۱۲:۴۳ ب.ظ







BTC


Bit complement


تکمیل بیت 


دستور  BTC  ،  مکمل بیت می باشد . 

Usage:  BTC      dest,src           Modifies flags: CF


پرچم  CF  ( پرچم نقلی )  توسط دستور  BTC  اصلاح می شود . 



The 'dest'  bit indexed by the 'src' value is copied into the Carry Flag after being complimented (inverted).


بیت مقصد که توسط مقدار عملوند مبدا ، ایندکس شده است ، بعد از تکمیل شدن ، به درون پرچم نقلی کپی می شود (معکوس می شود . یعنی بیت ، وارونه می شود . بیت یعنی باینری دیجیت یعنی رقم دوتایی یعنی  0  یا 1 یعنی زبان ماشین ! )




Bit Test


تست بیت . آزمایش بیت 



BT r/m16,reg16                ; o16 0F A3 /r         [386]

BT r/m32,reg32                ; o32 0F A3 /r         [386]

BT r/m16,imm8                 ; o16 0F BA /4 ib      [386]

BT r/m32,imm8                 ; o32 0F BA /4 ib      [386]


BTC r/m16,reg16               ; o16 0F BB /r         [386]

BTC r/m32,reg32               ; o32 0F BB /r         [386]

BTC r/m16,imm8                ; o16 0F BA /7 ib      [386]

BTC r/m32,imm8                ; o32 0F BA /7 ib      [386]


BTR r/m16,reg16               ; o16 0F B3 /r         [386]

BTR r/m32,reg32               ; o32 0F B3 /r         [386]

BTR r/m16,imm8                ; o16 0F BA /6 ib      [386]

BTR r/m32,imm8                ; o32 0F BA /6 ib      [386]


BTS r/m16,reg16               ; o16 0F AB /r         [386]

BTS r/m32,reg32               ; o32 0F AB /r         [386]

BTS r/m16,imm                 ; o16 0F BA /5 ib      [386]

BTS r/m32,imm                 ; o32 0F BA /5 ib      [386]


These instructions all test one bit of their first operand, whose index is given by the second operand, and store the value of that bit into the carry flag. Bit indices are from 0 (least significant) to 15 or 31 (most significant).


In addition to storing the original value of the bit into the carry flag, BTR also resets (clears) the bit in the operand itself. BTS sets the bit, and BTC complements the bit. BT does not modify its operands.


The destination can be a register or a memory location. The source can be a register or an immediate value.


If the destination operand is a register, the bit offset should be in the range 0-15 (for 16-bit operands) or 0-31 (for 32-bit operands). An immediate value outside these ranges will be taken modulo 16/32 by the processor.


If the destination operand is a memory location, then an immediate bit offset follows the same rules as for a register. If the bit offset is in a register, then it can be anything within the signed range of the register used (ie, for a 32-bit operand, it can be (-2^31) to (2^31 - 1)


مثال این دستور در اسمبلر RosAsm :






main:


mov eax    00_1111_0000      ; eax = 11110000b

mov ebx    7                          ; ebx = 7d

btc eax ebx                           ; eax = 70h    Note: change to carry flag


ret                                          ; return to rosasm or OS



OS یعنی سیستم عامل . در اینجا منظور از OS همان سیستم عامل ویندوز می باشد 


نکته : این پست و پستهای مشابه قبلی و پستهای مشابه بعدی ، به مرور زمان بطور کامل به زبان فارسی ترجمه خواهند شد . انشاا...

پس از نوشتن کد بالا در اسمبلر rosasm  ، کلید F6 را فشار دهید تا برنامه کامپایل و بیلد شود 

برای دیباگ کردن این برنامه ، پس ازذخیره سورس کد  ، نشانگر ماوس را به حاشیه ی سمت چپ ویراستار برده و در سمت چپ اولین دستور ، کلیک کنید یا اینکه کلید F4  را فشار دهید . سپس کلید F6 را فشار دهید تا پنجره ی debugger باز شود و سپس با فشردن کلید F7 اقدام به دیباگ (اشکالزدایی یا کشف خطاهای احتمالی برنامه )  نمایید . 


وحید محمدی . بلاگر سیار




بروزرسانی :

لینک دانلود راهنمای اصلی اسمبلر RosAsm :

من از روی  فایل زیر ، این مطالب را می نویسم و بعضا ترجمه می کنم  . بنابراین اگر حوصله ندارید و دوست دارید خودتان ، این مطالب را به زبان فارسی ترجمه و بازنشر کنید می توانید از فایل زیر استفاده نمایید .

بهرحال مشارکت شما کاربران عزیز ، می تواند باعث تسریع در احیای زبان برنامه نویسی اسمبلی ، گردد .