بخشی از پاورپوینت
اسلاید 1 :
برنامه نویسی به زبان اسمبلی
در emulator 8086
اسلاید 2 :
data segment
message db "welcome to assembly$"
ends
…
code segment
start:
lea dx, message
mov ah, 9
int 21h
ends
از دستور Cout برای چاپ یک پیغام استفاده می شود ، در زبان C++ از این دستور به این صورت می توان استفاده کرد :
cout << “Welcome To C++”;
و در زبان اسمبلی برای چاپ یک عبارت در دو مرحله این کار انجام می شود ؛
تعریف مقدار مورد نظر در سگمنت data
استفاده از مقدار تعریف شده در سگمنت code
مثال :
بخش اول معادل سازی دستورات
معادل دستور Cout
FullCode.ir
اسلاید 3 :
data segment
Star db “*$"
ends
code segment
start:
mov cx , 10
for:
lea dx , Star
mov ah , 9
int 21h
loop for
ends
بخش اول معادل سازی دستورات
معادل حلقه for
به کمک حلقه تکرار for می توان دستور یا دستوراتی را به تعداد دفعات معینی انجام داد.
برای مثال در زبان C++ می توانیم برای چاپ 10 کاراکتر * به این صورت عمل کنیم :
for (int a = 1 ; i<= 10 ; i++)
cout << “*” ;
حال برای پیاده سازی حلقه for دراسمبلی می توانیم مراحل زیر را پیاده سازی کنیم:
نکته : حلقه تکرار بر روی ثبات CX تأثیر می گذرد و در هر دفعه تکرار به صورت خودکار 1 مقدار از CX کم می کند تا به 0 برسد.
ایجاد یک متغییر با نام دلخواه
مقدار دهی به CX با عملگر mov
ایجاد حلقه تکرار به کمک برچسب
چاپ ستاره
FullCode.ir
اسلاید 4 :
data segment
Star db “*$"
ends
code segment
start:
mov cx , 0
for:
lea dx , Star
mov ah , 9
int 21h
mov AH, 02h
mov DL, 0Dh
INT 21h
mov DL, 0ah
INT 21h
loop for
ends
بخش اول معادل سازی دستورات
رفتن به خط بعد
در C++ به منظور رفتن به خط بعد می توان از \n استفاده کرد.
مثال : چاپ 10 ستاره زیر هم به این صورت می باشد :
for (int a = 1 ; i<= 10 ; i++)
cout << “* \n ” ;
به این ترتیب مرحله 5 (رفتن به خط بعد)
در این قسمت اضافه می شود.
ایجاد یک متغییر با نام دلخواه
مقدار دهی به CX با عملگر mov
ایجاد حلقه تکرار به کمک برچسب
چاپ ستاره
رفتن به خط بعد
FullCode.ir
اسلاید 5 :
code segment
start:
mov ah, 1
int 21h
ends
بخش اول معادل سازی دستورات
تابع getchar()
از این تابع برای دریافت کلید Enter از کاربر توسط صفحه کلید استفاده می شود. در این حالت برنامه تا زمانی که کاربر کلید Enter را نزده است متوقف می شود.
getchar();
معادل این دستور در اسمبلی دو خط زیر می باشد که می توانید در هر قسمت از برنامه با توجه به نیاز استفاده کنید.
FullCode.ir