نمایش نتایج 1 تا 40 از 65

نام تاپیک: برنامه های کاربردی در اسمبلی

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    32

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

    با سلام و تشكر از لطف جنابعالي
    اگه ميشه لطف كنيد وكد برنامه تعيين زوج و فرد بودن يك عدد را بذارين

    با تشكر


  2. #2

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

    برنامه زوج و فرد

    .MODEL SMALL

    .STACK 64

    .DATA

    STR1 DB "ZOJ$"
    STR2 DB "FARD$"

    .CODE
    MAIN PROC FAR

    MOV AX,@DATA
    MOV DS,AX
    ;-----
    MOV AX,4 ;ADADE MOREDE NAZAR / BL-> IF MOD IS 0 = EVEN

    MOV BL,2
    DIV BL
    CMP AH,0

    JNE LF

    MOV AH,09H
    LEA DX,STR1
    INT 21H
    JMP EXIT


    LF:
    MOV AH,09H
    LEA DX,STR2
    INT 21H


    EXIT:
    ;----
    MOV AH,00H
    INT 16H
    ;----
    MOV AX,4C00H
    INT 21H

    MAIN ENDP
    END MAIN

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    32

    Lightbulb نقل قول: برنامه های کاربردی در اسمبلی

    با عرض سلام و تشكر از دوست گرامي!

    خواستم اگه ميشه لطف كنيد و مرا راهنمايي فرماييد كه چگونه مي توان در يك برنامه آرايه اي از كاراكترها را تعريف نمود به گونه اي كه كاراكترها بصورت يك در ميان چاپ گردند؟

    با تشكر

  4. #4

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

    برای تعریف آرایه تو اسمبلی از DB استفاده میکنیم که میاد اعداد یا کاراکتر ها رو تو خونه های یک بایت ای پشت سر هم قرار میده

    STR DB "MEHRDAD$" STR[0]=M,STR[1]=E
    و به همین صورت ادامه....

    از سرویس 02 اینتراپت 21 استفاده میکنیم به این صورت که یک شمارنده میزاریم که اولش از 0 باشه و اگه کاراکتری که اندیس داره بهش شاره میکنه غیر از دالر بود و یا یکی قبلش دالر نبود بیاد چاپ کنه و بعدش شمارنده 2 بار اضافه بشه که یک درمیان چاپ بشه

    چون 2بار اضافه میشه ممکن بود از دالر رد بشه و هرچی کاراکتر تو حافظه بود و چاپ میکرد واسه همین شرط یکی قبلش بررسی شد

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


    .MODEL SMALL

    .STACK

    .DATA

    STR DB "ABCDEFGH$"

    .CODE

    MAIN PROC FAR

    MOV AX,@DATA
    MOV DS,AX
    MOV ES,AX
    ;----

    MOV BX,0

    L1:
    MOV AL,STR[BX]
    CMP AL,'$'
    JE EXIT
    MOV AL,STR[BX-1]
    CMP AL,'$'
    JE EXIT
    MOV AH,02H
    MOV DL,STR[BX]
    INT 21H
    INC BX
    INC BX
    JMP L1

    ;----
    EXIT:
    MOV AH,00H
    INT 16H

    MOV AX,4C00H
    INT 21H

    MAIN ENDP
    END MAIN

  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    32

    Lightbulb نقل قول: برنامه های کاربردی در اسمبلی

    با سلام خدمت دوست گرامی و با تشکر از راهنماییهای جنابعالی

    می خواستم ببینم در مورد برنامه زیر از چه کدی باید استفاده نمود تا از کاربر تایید گرفت :

    برنامه ای که تعدادی عدد از کاربر دریافت کرده و کوچکترین و بزرگترین عدد ورودی را نمایش دهد ، پس از ورود هر عدد از کاربرسؤال می شود که اگر پاسخ صحیح داد(y)
    عدد دیگری دریافت شده و در غیر اینصورت بزرگترین و کوچکترین اعداد ورودی نمایش داده شوند .

    با تشكر

  6. #6

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

    سلام به دوستای گلم

    خوب اینو آموزش میدم که جنبه حل تمرین نباشه

    خوب قالب اصلی برنامه نویسی اسمبلی و که همه بلدیم اینجوریه

    .MODEL SMALL

    .STACK 64

    .DATA

    .CODE

    MAIN PROC FAR

    MOV AX,@DATA
    MOV DS,AX
    MOV ES,AX
    ;------------------------------------------------------------------


    EXIT:
    ;-----------------------PAUS-------------------------------------
    MOV AH,00H
    INT 16H
    ;----------------------------------------------------------------

    MOV AX,4C00H
    INT 21H

    MAIN ENDP

    END MAIN



    اینم قسمت داده ها


    .DATA
    ;----------------------DATA-------------

    MAX_NUM DB 0

    MIN_NUM DB 0

    STR DB "CONTINUE ? $"

    MAXSTR DB "MAX IS : $"

    ENDL DB 0AH,0DH,'$'

    MINSTR DB " MIN IS : $"

    S DB "ENTER NUM : $"

    ;---------------------------------------


    در شروع برنامه هم ماکز و هم مین صفر درنزر گرفته میشه

    و منتق برنامه اینه که اگه عددی که کاربر وارد میکنه از ماکزیمم بیشتر ماکز بشه اون عدد و بعدش شرط مین هم چک میشه


    MOV AH,09H
    LEA DX,S
    INT 21H


    MOV AH,01H
    INT 21H
    MOV MIN_NUM,AL
    MOV MAX_NUM,AL

    MOV AH,06H
    MOV AL,0
    MOV CX,0
    MOV DH,24
    MOV DL,79
    MOV BH,00001001B
    INT 10H

    JMP L2

    FOR:

    MOV AH,06H
    MOV AL,0
    MOV CX,0
    MOV DH,24
    MOV DL,79
    MOV BH,00001001B
    INT 10H

    MOV AH,02H
    MOV BX,0
    MOV DX,0
    INT 10H

    MOV AH,09H
    LEA DX,S
    INT 21H


    MOV AH,01H
    INT 21H


    SUB AL,30H

    CMP MAX_NUM,AL
    JNA L4
    ADD AL,30H
    MOV MAX_NUM,AL

    L4:
    CMP AL,30H
    JB L5
    CMP AL,39H
    JA L5
    CMP MIN_NUM,AL
    JNB L2
    ADD AL,30H
    MOV MIN_NUM,AL

    JMP L2

    L5:
    SUB AL,30H
    CMP MIN_NUM,AL
    JNB L2
    ADD AL,30H
    MOV MIN_NUM,AL


    ;---------


    L2:
    ;SOAL

    ;CLEAR SCREAN


    MOV AH,06H
    MOV AL,0
    MOV CX,0
    MOV DH,24
    MOV DL,79
    MOV BH,00001001B
    INT 10H

    ;------MOV X,Y

    MOV AH,02H
    MOV BX,0
    MOV DX,0
    INT 10H

    ;------
    MOV AH,09H
    LEA DX,STR
    INT 21H

    MOV AH,01H
    INT 21H
    CMP AL,'Y'

    JE FOR

    MOV AH,06H
    MOV AL,0
    MOV CX,0
    MOV DH,24
    MOV DL,79
    MOV BH,00001001B
    INT 10H

    MOV AH,09H
    LEA DX,ENDL
    INT 21H


    MOV AH,09H
    LEA DX,MAXSTR
    INT 21H

    MOV AH,02H

    MOV DL,MAX_NUM
    INT 21H

    MOV AH,09H
    LEA DX,ENDL
    INT 21H


    MOV AH,09H
    LEA DX,MINSTR
    INT 21H

    MOV AH,02H
    MOV DL,MIN_NUM
    INT 21H


    اول برنامه یک عدد گرفته میشه و هم ماکز و هم مین برابر اون عدد میشه

    و بعد تا وقتی کاربر در جواب اینکه ادامه میدید بگه Y (حرف بزرگ) که اونم میتونید OR بنویسید عدد گرفتن ادامه پیدا میکنه
    و بعدش اگه گفت نه میاد بزرگ و کوچیک و چاپ میکنه
    (بازم شرمنده باید برم جایی اونجور که باید توضیح ندادم)
    امیدوارم استفاده کنید


    آخرین ویرایش به وسیله $ M 3 H R D A D $ : دوشنبه 05 بهمن 1388 در 20:42 عصر

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1388
    محل زندگی
    تهران
    پست
    32

    Lightbulb نقل قول: برنامه های کاربردی در اسمبلی

    با عرض سلام و تشكر خدمت دوست گرامي !

    من تمامي مراحلي كه فرموده بوديد رو انجام دادم و در هر قسمت كد مربوطه را نوشتم اما
    وقتي برنامه را اجرا مي كنم ابتدا "Enter num " ظاهر مي شود و من يك عدد مثلا 8 را وارد
    مي كنم ، سپس عبارت Continue را از من سوال مي كند و من عدد 5 را وارد كردم
    اما هم ماكزيمم و هم مينيمم را عدد 8 اعلام مي كند ، ميشه لطف كنيد علت آن را بيان كنيد و يا لطف كنيد كد كامل برنامه را بنويسيد . ممنون ميشم اگه اين لطف را كنيد !!

    با تشكر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •