نمایش نتایج 1 تا 16 از 16

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

  1. #1

    استفاده از کد اسمیلی در دلفی و یا تبدیل کد اسمبلی به دلفی

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

    model small
    .code
    org 100h
    r_f_port proc
    push bx
    push cx
    push dx
    ;***************init port************************
    push bx
    mov ah,0
    mov dx,1
    mov al,0EFh
    int 14h
    pop bx
    ;************************************************
    mov cx,5000
    push 49
    or bx,bx
    jnz cont1
    pop dx
    push 50
    jmp cont7
    ;; data not ready
    cont1:
    pop dx
    push 50
    dec cx
    jcxz cont7
    pop dx
    push 51
    call delay1
    mov dx,03fdh
    in al,dx
    test al,1
    jz cont1
    ;; CX for counter
    mov cx,0
    cont2:
    mov dx,03f8h
    in al,dx
    test al,080h
    jz cont2
    cont3:
    mov [bx],al
    inc bx

    inc cx
    cmp cx,5
    je cont4
    cont5:
    call delay1
    mov dx,03fdh
    in al,dx
    test al,1
    jz cont5

    mov dx,03f8h
    in al,dx
    jmp cont3
    cont4:
    mov al,[bx-5]
    and al,7
    mov [bx],al

    mov al,[bx-5]
    and al,16
    mov [bx+1],al

    mov al,[bx-4]
    and al,8
    mov [bx+2],al

    mov dl,byte ptr[bx-1] ; save lower byte
    mov dh,byte ptr[bx-2]
    mov al,byte ptr[bx-3]
    mov ah,byte ptr[bx-4] ; save higher byte

    and ax,077fh
    shl al,1
    shr ax,1
    push ax
    shr ax,1
    shr ax,1
    mov [bx+6],ax

    shl dl,1
    shr dx,1
    pop ax
    mov cl,14
    shl ax,cl
    or dx,ax
    mov word ptr[bx+4],dx

    cont7:
    pop ax
    pop dx
    pop cx
    pop bx
    mov [bx],al
    retf
    r_f_port endp
    ;************************************************
    delay1 proc
    push dx
    mov dx,8000
    loop1:
    dec dx
    push dx
    pop dx
    cmp dx,0
    jne loop1
    pop dx
    ret
    delay1 endp
    ;***********************************************
    end r_f_port




  2. #2

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

    سلام.
    در دلفی می تونید با گذاشتن کلمه asm مستقیم اسمبلی بنویسید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840
    پایگاه داده، تیونینگ، طراحی و پیاده سازی ..

  3. #3

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

    متاسفانه با استفاده از asm بعضی از دستورها فراخوانی نمیشن .

  4. #4

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

    اگه پورت پارالل هست میتونین از io32.dllیا input32.dll استفاده کنید که روی همه ویندوزها هم جواب میده
    اگه سریال هست کامپوننت و کد به دلفی براش هست

  5. #5

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

    Everything that has a beginning has an end. ... The End?



  6. #6
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

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

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

  7. #7

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

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

  8. #8
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

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

    نقل قول نوشته شده توسط BORHAN TEC مشاهده تاپیک
    اگه درست یادم مونده باشه توی XE2 میشه این کار رو انجام داد.
    نمیشه حتی در xe7

  9. #9

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

    نمیشه حتی در xe7
    سلام، بله در نسخه های جدیدتر دلفی نمیشه، منظور من فقط و فقط نسخه XE2 و کامپایلر 64 بیتی دلفی هست. این کد رو در سایت Stackoverflow پیدا کردم که در خصوص delphi xe2 هست:
    procedure CopySwapPixel(const Source, Destination: Pointer);
    {$IFDEF CPUX64}
    asm
    mov al,[rcx+0]
    mov ah,[rcx+1]
    mov [rdx+2],al
    mov [rdx+1],ah
    mov al,[rcx+2]
    mov ah,[rcx+3]
    mov [rdx+0],al
    mov [rdx+3],ah
    end;
    {$ELSE}
    asm
    push ebx //[DCC Error]: E2116 Invalid combination of opcode and operands
    mov bl,[eax+0]
    mov bh,[eax+1]
    mov [edx+2],bl
    mov [edx+1],bh
    mov bl,[eax+2]
    mov bh,[eax+3]
    mov [edx+0],bl
    mov [edx+3],bh
    pop ebx //[DCC Error]: E2116 Invalid combination of opcode and operands
    end;
    {$ENDIF}

    یه بنده خدایی هم یادمه که میگفت کامپایلر 64 بیتی در نسخه XE2 کدهای اسمبلی رو کامپایل میکنه و میشه در اون از inline assembly استفاده کرد. من روی سیستمم xe2 رو ندارم و نمیتونم تستش کنم ولی بالای 90% مطمعن هستم که این ویژگی در نسخه یاد شده وجود داره.

  10. #10
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

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

    من الان تست کردم و گیر داد (فکر کنم برای cpu) های مختلف فرق داره !!!

    اما چند تا سایت دیدم که توش یا xe2 اینکا انجام شده بود

  11. #11

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

    نمیدونم، شاید من هنوز مفهوم inline assembly رو درست درک نکردم. همین الان کد رو توی XE7 تست کردم و جالبه که میشه دیباگش کرد!!!
    این هم از عکس مربوطه:
    عکس های ضمیمه عکس های ضمیمه

  12. #12
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

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

    چه جالب! پس شاید مشکل از cpu من هست amd64

    راستی شما پروسیجر رو فراخونی کردید؟

  13. #13

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

    چه جالب! پس شاید مشکل از cpu من هست amd64
    نمیدونم، ولی بعید به نظر میرسه که ربطی به این موضوع داشته باشه. لطفاً دوستانی که از این موضوع اطلاع دارند توضیح بدن که الان دقیقاً چی به چیه!
    cpu سیستم من اینه:
    Intel(R) Core(TM)i5-4200M CPU @ 2.50GHz

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

  14. #14

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

    دقیقا بر میگرده به معماری Cpu حتی بر روی cpu های AMD شما نمیتونید بعضی از ایمولاتورهایی که دارند Arm رو شبیه سازی میکنند، نصب کنید.


  15. #15

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

    در نسخه های جدید هم همچنان امکان استفاده از Inline Asm وجود داره مشکل با x64 اه که اینم راهی داره. توی کدهای ۶۴ بیت میشه از inline asm استفاده کرد ولی باید کل procedure یا function رو با اسمبلی بنویسی, یعنی بدنه تابع باید با asm ... end;باز و بسته بشه و نه begin ... end; .
    Everything that has a beginning has an end. ... The End?



  16. #16
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

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

    کد رو intel corei5 اجرا کردم درست کار کرد

تاپیک های مشابه

  1. کتاب آموزش استفاده از اسمبلی در دلفی (البته 32بیتی)
    نوشته شده توسط بهروز عباسی در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 0
    آخرین پست: چهارشنبه 15 خرداد 1392, 02:12 صبح
  2. نحوه استفاده از وب سرویس ساخته شده به وسیله C#‎.net 2003 در دلفی 7.0
    نوشته شده توسط Colonel در بخش توسعه نرم افزار تحت وب
    پاسخ: 10
    آخرین پست: دوشنبه 18 شهریور 1387, 12:04 عصر
  3. استفاده از وب سرویسی که با دات نت نوشته شده در برنامه دلفی
    نوشته شده توسط khafanovich در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: چهارشنبه 01 اسفند 1386, 11:14 صبح
  4. استفاده کردن از اسمبلی در دلفی
    نوشته شده توسط مهرداد برنامه نویس در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 6
    آخرین پست: دوشنبه 23 شهریور 1383, 04:00 صبح
  5. از اسمبلی به دلفی
    نوشته شده توسط afshincomputer در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 9
    آخرین پست: چهارشنبه 21 خرداد 1382, 14:10 عصر

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

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