سلام به همگی .
چون اخیرا ازم خواسته شده بود برنامه عدد کامل رو به زبان اسمبلی بنویسم . من هم کد رو برای استفاده سایرین اینجا قرار میدم .
در این کد من تا جای ممکن سعی کردم کار خیلی راحت و تازه کارانه باشه تا ضعیف ترین بچه ها در اسمبلی هم بتونن بخوبی با کد ارتباط برقرار کنن .
در کد زیر من سعی کردم قدم هایی لازم برای نوشتن یه برنامه اسمبلی رو نشون بدم . به این صورت که اول از یه شبه کد بزبان سی استفاده کردم و کم کم کم کم اون رو تبدیل به کد معادل زبان اسمبلیش کردم . دلیل استفاده از زبان سی هم بخاطر شباهت بسیار نزدیک اون به زبان اسمبلی هست و راحتی فکر کردن .
سورس کد به اضافه فایل اجرایی و تمامی فایلهای مورد نیاز برای کامپایل و اجرای برنامه هم در فایل ضیمیمه قرار داده شده .
امیدوارم مورد استفاده هرکسی که نیاز داره قرار بگیره
بصورت پیشفرض این برنامه میاد اعداد کامل تا 10000 رو نمایش میده . شما برای اینکه هر عددی که دلتون خواست رو وارد کنید و اعداد کامل تا اون عدد مورد نظر شما رو نمایش بده کافیه عدد مورد نظرتون رو از ورودی دریافت کنید و بعد بجای اون عدد 10000 قرار بدید همین .
در پناه حق :
; IN THE NAME OF ALLAH , THE MOST COMPASSIONATE THE MOST MERCIFUL.
;Programmer: Seyyed Hossein Hasan Pour
;Program : Prefect Numbers in Assembly
;Ustmb.ir
INCLUDE IO.H
PRINT MACRO S
MOV BX,S
ITOA C,BX
OUTPUT C
ENDM
GETCH MACRO
MOV AH,07
INT 21H
ENDM
DATA SEGMENT
MESSAGE1 DB 'ENTER A NUMBER',10,13,0
C DB 8 DUP(0),0
SUM DW 0
I DW 0
J DW 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE , DS:DATA
OUTPUT_IT:
MOV BX,SUM
ITOA C,BX
OUTPUT C
RET
START:
MOV AX,DATA
MOV DS,AX
; while ( i = 5 ; i <100(NUM) ; i++)
; {
; sum = 0;
; while( j = 1 ; j < i ; j++)
; {
; if ( i%j == 0)
; {
; sum = sum + j;
; }
; if ( sum == i)
; {
; print ( sum );
; }
; }
; }
; i = 5
; while ( i <100(NUM) ; i++)
; {
; sum = 0;
; j = 1
; while( j < i ; j++)
; {
; if ( i%j == 0)
; {
; sum = sum + j;
; }
; if ( sum == i)
; {
; print ( sum );
; }
; }
; }
; i = 5
; while ( i <100 )
; {
; sum = 0;
; j = 1
; while( j < i )
; {
; if ( i%j == 0)
; {
; sum = sum + j;
; }
; if ( sum == i)
; {
; print ( sum );
; }
; j++
; }
; i++;
; }
; i = 5
; while ( i <100 ) : CMP i < 100
; { JAE EXIT
علاقه مندی ها (Bookmarks)