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

نام تاپیک: نشان دادن ساعت سیستم

  1. #1

    نشان دادن ساعت سیستم

    من می خوام برنامه ایی بنویسم که ساعت سیستم رو نمایش بده البته توی MASM32 یعنی یه پنجره کوچولو رو با استفاده از API های ویندوز ایجاد و ساعت رو نشون یده می خواستم بدونم امکان چنین کاری وجود داره ؟
    و اینکه چطور میشه اینکار رو کرد یعنی اگه تابعی داره ممنون میشم بگید چیه و چطور فراخوانیش کنم

  2. #2
    کاربر دائمی آواتار #target
    تاریخ عضویت
    دی 1387
    محل زندگی
    استان گلستان
    پست
    589

    نقل قول: نشان دادن ساعت سیستم

    تابع GetLocalTime یا GetSystemTime
    قبلش هم کافیه SYSTEMTIME آدرسشو Push کنی

    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

  3. #3

    نقل قول: نشان دادن ساعت سیستم

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

  4. #4

    نقل قول: نشان دادن ساعت سیستم

    نقل قول نوشته شده توسط majid1605 مشاهده تاپیک
    راستش من تازه برنامه نویسی اسمبلی رو شروع کردم و تازه ساخت پنجره ویندوز و یا نشون دادن اونو یاد گرفتم حالا می خوام ساعت رو هم داخلش نشون بدم .میشه یه نمونه از به کار گیری اون تابع رو برام بزارید.و چطور ادرسش رو push کنم ممنن میشم
    اول باید یک ساختمان داده مثل لینک هایی که در پست2 قرار دادن تعریف کنید
    بعد اگر stime ساختمان ما باشه به شکل زیر فراخوانی میشه

    lea eax,dword ptr stime
    push eax
    call dword ptr GetLocalTime
    و بعد هم دستیابی می کنید به اعضا ساختمان و نمایش میدین
    برای مثال

    xor eax,eax
    mov al,byte ptr stime.wMinute
    xor eax,eax
    mov al,byte ptr stime.wHour

    با این دستورات به ساعت و دقیقه دسترسی پیدا میکنید.
    و نظر من اینه که اگر تازه شروع کردید وقتی خودتون رو درگیر api ها کردین فکر نمیکنم چیزی از اسمبلی یاد بگیرین ، 99% هم زده میشین چون هم درگیر ساختار های توابع پیچیده ویندوز میشین و هم اسمبلی
    موفق باشی
    سلام، دوستان من خیلی وقت است در سایت برنامه نویس فعالیت ندارم پس لطف کنید پیام خصوصی ندین، در صورتی که با اینجانب کاری داشتین از طریق ایمیل xman_1365_x@yahoo.com می تونید با من مکاتبه کنید. موفق باشید.

  5. #5

    نقل قول: نشان دادن ساعت سیستم

    من فقط می خوام اسمبلی رو تا حدی یاد بگیرم که بتونم یه پرژه تحویل بدم و می خوام تا حد زیادی خودم روش کارکنم تا اینکه بدم یه نفر .
    در مورد API های ویندوز باهشون آشنایی نسبی دارم البته توی ++C ، چیزی که توی اسمبلی هم دیدم تقریباً مثل هم هستند.
    ولی اسمبلی رو خیلی ضعیف هستم
    ممنون

  6. #6

    نقل قول: نشان دادن ساعت سیستم

    نقل قول نوشته شده توسط majid1605 مشاهده تاپیک
    من فقط می خوام اسمبلی رو تا حدی یاد بگیرم که بتونم یه پرژه تحویل بدم و می خوام تا حد زیادی خودم روش کارکنم تا اینکه بدم یه نفر .
    در مورد API های ویندوز باهشون آشنایی نسبی دارم البته توی ++C ، چیزی که توی اسمبلی هم دیدم تقریباً مثل هم هستند.
    ولی اسمبلی رو خیلی ضعیف هستم
    ممنون
    خوب برای یادگیری اسمبلی کتاب های زیادی هست که باید مطالعه کنید(یک جستجو توی گوگل) در نهایت بیاین سراغ api ها البته هنگامی که تحت کنسول توی ویندوز کار کنید بیشتر از api های kernel32 استفاده میکنید که گرفتن زمان هم جزء توابع همین کتابخانه هست.
    لینک زیر هم بعدا بدرتون میخوره راهنمای api داره که خیلی خوبه و همینطور مثال های زیادی
    http://win32assembly.online.fr/tutorials.html
    موفق باشی
    سلام، دوستان من خیلی وقت است در سایت برنامه نویس فعالیت ندارم پس لطف کنید پیام خصوصی ندین، در صورتی که با اینجانب کاری داشتین از طریق ایمیل xman_1365_x@yahoo.com می تونید با من مکاتبه کنید. موفق باشید.

  7. #7

    نقل قول: نشان دادن ساعت سیستم

    تحت کنسول رو براتون نوشتم ،چون میدونم بدرد دوستان دیگه هم میخوره

    نکات آموزشی که داره:
    استفاده از ساختمان
    استفاده از توابع ویندوز (api)
    استفاده از ماکرو و فایل های کتابخانه ای در masm

    ;Build manual:
    ;ml /c /coff /Cp /Zi time1.asm
    ;Link /SUBSYSTEM:CONSOLE /DEBUG /LIBPATH:c:\masm32\lib time1.obj



    ; ««««««««««««««««««««««««« ««««««««««««««««««««««««« «««««««««««««««««««««««

    ; Build this with the "Project" menu using
    ; "Console Assemble and Link"

    ; ««««««««««««««««««««««««« ««««««««««««««««««««««««« «««««««««««««««««««««««

    .486 ; create 32 bit code
    .model flat, stdcall ; 32 bit memory model
    option casemap :none ; case sensitive


    include \masm32\include\windows.inc ; always first
    include \masm32\macros\macros.asm ; MASM support macros

    ; -----------------------------------------------------------------
    ; include files that have MASM format prototypes for function calls
    ; -----------------------------------------------------------------
    include \masm32\include\masm32.inc
    include \masm32\include\gdi32.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\msvcrt.inc ;crt__ultoa
    ; ------------------------------------------------
    ; Library files that have definitions for function
    ; exports and tested reliable prebuilt code.
    ; ------------------------------------------------
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\gdi32.lib
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib

    includelib \masm32\lib\msvcrt.lib ;crt__ultoa


    .const
    ;nothing
    .data
    ;nothing
    .data?


    stimestruct STRUCT
    wYear WORD ?
    wMonth WORD ?
    wDayOfWeek WORD ?
    wDay WORD ?
    wHour WORD ?
    wMinute WORD ?
    wSecond WORD ?
    wMilliseconds WORD ?
    stimestruct EndS

    stime stimestruct {}


    .code

    ; ««««««««««««««««««««««««« ««««««««««««««««««««««««« «««««««««««««««««««««««

    start:



    print chr$(13,10)



    lea ebx,stime
    push ebx
    call GetLocalTime


    print chr$("LocalTime is: ")


    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wHour
    print ustr$ (eax)

    print chr$(":")

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wMinute
    print ustr$ (eax)



    print chr$(13,10)


    lea ebx,stime
    push ebx
    call GetSystemTime

    print chr$("SystemTime is: ")
    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wHour
    print ustr$ (eax)

    print chr$(":")

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wMinute
    print ustr$ (eax)


    print chr$(13,10)
    exit

    ; ««««««««««««««««««««««««« ««««««««««««««««««««««««« «««««««««««««««««««««««

    end start



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

  8. #8

    نقل قول: نشان دادن ساعت سیستم

    ممنون
    متاسفانه بعد از کامپایل فایل EXE برام اجرا نمیشه بدون هیچ خطایی یعنی وقتی روش کلیک می کنم هیچ اتفاقی نمیفته به خاطر 64 بیتی بودن ویندوزمه؟

    می تونید یه برنامه به صورت گرافیکی بنویسید و یه توضیح در مورد دستورات مهمش بدید منظورم از گرافیکی یعنی از پنجره ویندوز استفاده کنه مثلاً یکی که تاریخ سیستم رو نشون بده حالا فقط سال هم باشه کافیه ولی در موردش توضیح بدید ممنون میشم .
    البته شما که این برنامه رو گذاشتید که بدرد دوستان دیگه بخوره یه توضیح جامع هم میدادید تا کارتون کاملتر بشه

  9. #9

    نقل قول: نشان دادن ساعت سیستم

    نقل قول نوشته شده توسط majid1605 مشاهده تاپیک
    ممنون
    متاسفانه بعد از کامپایل فایل EXE برام اجرا نمیشه بدون هیچ خطایی یعنی وقتی روش کلیک می کنم هیچ اتفاقی نمیفته به خاطر 64 بیتی بودن ویندوزمه؟

    می تونید یه برنامه به صورت گرافیکی بنویسید و یه توضیح در مورد دستورات مهمش بدید منظورم از گرافیکی یعنی از پنجره ویندوز استفاده کنه مثلاً یکی که تاریخ سیستم رو نشون بده حالا فقط سال هم باشه کافیه ولی در موردش توضیح بدید ممنون میشم .
    البته شما که این برنامه رو گذاشتید که بدرد دوستان دیگه بخوره یه توضیح جامع هم میدادید تا کارتون کاملتر بشه
    مشکل اینه تحت کنسول اجراش نکردین فقط دابل کلیک کردین ، سیستم عامل من هم 64 بیتی هست ، وقتی دابل کلیک میکنید سریع اجرا میشه و بسته میشه
    برای اینکه با دابل کلیک هم قابل مشاهده باشه
    این خط رو حذف کنید از آخر
    print chr$(13,10)

    و بجاش این خط رو جایگزین کنید
    mov   eax, input(13,10,"Press enter to exit...")

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

  10. #10

    نقل قول: نشان دادن ساعت سیستم

    این بار هم اجرا نمیشه پنجره پیغام ویندوز 7 میاد همون که میره واسه چک کردن

  11. #11

    نقل قول: نشان دادن ساعت سیستم

    نقل قول نوشته شده توسط majid1605 مشاهده تاپیک
    این بار هم اجرا نمیشه پنجره پیغام ویندوز 7 میاد همون که میره واسه چک کردن
    فایل اجرایی به همرا سورس و... رو آپلود کردم ، ببینید فایل اجرایی خطا میده یا نه؟
    time.rar
    سلام، دوستان من خیلی وقت است در سایت برنامه نویس فعالیت ندارم پس لطف کنید پیام خصوصی ندین، در صورتی که با اینجانب کاری داشتین از طریق ایمیل xman_1365_x@yahoo.com می تونید با من مکاتبه کنید. موفق باشید.

  12. #12

    نقل قول: نشان دادن ساعت سیستم

    نه درست کار می کنه چرا توی سیستم من خطا میده؟
    اون ساعت سیستم چیه ؟

  13. #13

    نقل قول: نشان دادن ساعت سیستم

    می تونید یه برنامه به صورت گرافیکی بنویسید و یه توضیح در مورد دستورات مهمش بدید منظورم از گرافیکی یعنی از پنجره ویندوز استفاده کنه مثلاً یکی که تاریخ سیستم رو نشون بده حالا فقط سال هم باشه کافیه ولی در موردش توضیح بدید ممنون میشم .
    البته شما که این برنامه رو گذاشتید که بدرد دوستان دیگه بخوره یه توضیح جامع هم میدادید تا کارتون کاملتر بشه
    در این باره یادم رفت بگم اینجا یا دوستای ما همه حرفه ای هستن یا علاقه مند نیستن من به بازخورد ها نگاه میکنم اگر استقبال شه مطلبی رو آموزش میدم و یا بعد بیشتر از این توضیح میدم،در مورد برنامه ویندوزی چون پروژه شما بوده ننوشتم اما هیچ فرقی نداره کمی پیچیده تر میشه چون توابع بیشتری فراخوانی میشن

    نه درست کار می کنه چرا توی سیستم من خطا میده؟
    در دو خط اول نوشتم چطور اسمبلش کنید با همون دستورات این کارو انجام بدین نباید مشکلی پیش بیاد
    اون ساعت سیستم چیه ؟
    Coordinated Universal Time (UTC)زمان هماهنگ جهانی (UTC) یک استاندارد بسیار دقیق زمان اتمی برای تعیین ساعت‌ها و اختلافات زمانی در سراسر جهان است.

    «زمان هماهنگ جهانی» بیشتر از ۰٫۹ ثانیه با ساعت گرینویچ اختلاف ندارد و برای بسیاری از کاربردهای روزمره چنین اختلافی قابل صرف‌نظر کردن است.

    local time زمان جاری سیستم رو نمایش میده
    آخرین ویرایش به وسیله xman_1365_x : چهارشنبه 02 آذر 1390 در 22:30 عصر

  14. #14

    نقل قول: نشان دادن ساعت سیستم

    در مورد آموزش ها که یا ناقص هستند یا خیلی قدیمی 16 بیتی کتابی هم که پیدا کردم همینطوره .مطمئناً در مورد مطالب آموزشی خیلی ها هم هستند که دنبال مطالب اموزشی جدید هستند .
    معمولاً خودم اگه چیزی بلد باشم یه جوری مطلب رو میزارم که بقیه هم متوجه بشن نمونش هم توی سات خودم موجوده و به این هم کاری ندارم که قبلاً ارائه شده و یا اینکه کاربری ممکنه نیاد بخوندش.
    به هر حال شما مختارید و ممکنه وقتش رو هم نداشته باشید.

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

  15. #15

    نقل قول: نشان دادن ساعت سیستم

    نقل قول نوشته شده توسط majid1605 مشاهده تاپیک
    در مورد آموزش ها که یا ناقص هستند یا خیلی قدیمی 16 بیتی کتابی هم که پیدا کردم همینطوره .مطمئناً در مورد مطالب آموزشی خیلی ها هم هستند که دنبال مطالب اموزشی جدید هستند .
    معمولاً خودم اگه چیزی بلد باشم یه جوری مطلب رو میزارم که بقیه هم متوجه بشن نمونش هم توی سات خودم موجوده و به این هم کاری ندارم که قبلاً ارائه شده و یا اینکه کاربری ممکنه نیاد بخوندش.
    به هر حال شما مختارید و ممکنه وقتش رو هم نداشته باشید.

    در مورد پروژه من گفتم که اگه همون تاریخ رو هم نشون بده ولی به صورت گرافیکی بزارید خیلی خوب میشد و در موردش یه توضیحی بدید
    و اگه تونستم ساعت رو به صورت گرافیکی بنویم میزارمش همین جا واسه بقیه .
    در مورد کتاب شما باید یک زمینه داشته باشین کتاب های 8086 به معنی این نیست که دیگه بدرد نمیخورن اونا کتاب پایه هست که باید یاد گرفت، کتاب فارسی برنامه نویسی 32 بیتی زبان اسمبلی و معماری زیر پردازنده 80x86 مشحون که در محیط کنسول رو آموزش میده و روی اسمبلی تاکید داره نه ماکرو های اسمبلر اما اگر بیس 16 رو ندونید به مشکل میخوری و کتاب دیگه آشنايي با برنامه نويسي اسمبلي ويندوز وحيد نصيري ،کتاب انگلیسی هم که زیاد هست میتونید جستجو کنید!
    و در ارتباط با ادامه حرفاتون ببینید دوست عزیز شما فرمودین در زمینه اسمبلی چیزی نمیدونید حالا من بیام توضیح چی بدم ؟ شما باید یک سری مقدماتو بدونید، بعد اگر جایی از کد براتون نا مفهوم بپرسید بعد جواب میدم
    الان من صرفا به هدف تاپیک پاسخ دادم ( اموزش مربوط به توابع برای ایجاد برنامه gui و هم فراخوانی تابع زمان) پس هرچیزی به غیر این یعنی آف تاپیک و باعث قفل شدن تاپیک میشه
    اگر سوالی در رابطه با کد هست بفرمایید اگر نه که هیچ
    موفق باشی

  16. #16

    نقل قول: نشان دادن ساعت سیستم

    .386
    .model flat,stdcall
    option casemap:none

    WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    .data
    ClassName db "SimpleWinClass",0
    AppName db "Our First Window",0
    OurText db "Win32 assembly is great and easy!",0
    .data?
    hInstance HINSTANCE ?
    CommandLine LPSTR ?

    stimestruct STRUCT
    wYear WORD ?
    wMonth WORD ?
    wDayOfWeek WORD ?
    wDay WORD ?
    wHour WORD ?
    wMinute WORD ?
    wSecond WORD ?
    wMilliseconds WORD ?
    stimestruct EndS

    stime stimestruct {}

    .code
    start:
    invoke GetModuleHandle, NULL
    mov hInstance,eax
    invoke GetCommandLine
    mov CommandLine,eax
    invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
    invoke ExitProcess,eax
    WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR, CmdShow:DWORD
    LOCAL wc:WNDCLASSEX
    LOCAL msg:MSG
    LOCAL hwnd:HWND
    mov wc.cbSize,SIZEOF WNDCLASSEX
    mov wc.style, CS_HREDRAW or CS_VREDRAW
    mov wc.lpfnWndProc, OFFSET WndProc
    mov wc.cbClsExtra,NULL
    mov wc.cbWndExtra,NULL
    push hInst
    pop wc.hInstance
    mov wc.hbrBackground,COLOR_WINDOW+1
    mov wc.lpszMenuName,NULL
    mov wc.lpszClassName,OFFSET ClassName
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov wc.hIcon,eax
    mov wc.hIconSm,0
    invoke LoadCursor,NULL,IDC_ARROW
    mov wc.hCursor,eax
    invoke RegisterClassEx, addr wc
    INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
    WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NUL L,\
    hInst,NULL
    mov hwnd,eax
    INVOKE ShowWindow, hwnd,SW_SHOWNORMAL
    INVOKE UpdateWindow, hwnd
    .WHILE TRUE
    INVOKE GetMessage, ADDR msg,NULL,0,0
    .BREAK .IF (!eax)
    INVOKE TranslateMessage, ADDR msg
    INVOKE DispatchMessage, ADDR msg
    .ENDW
    mov eax,msg.wParam
    ret
    WinMain endp
    WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    LOCAL hdc:HDC
    LOCAL ps:PAINTSTRUCT
    LOCAL rect:RECT
    .IF uMsg==WM_DESTROY
    invoke PostQuitMessage,NULL
    .ELSEIF uMsg==WM_PAINT
    invoke BeginPaint,hWnd, ADDR ps
    mov hdc,eax
    invoke GetClientRect,hWnd, ADDR rect
    invoke DrawText, hdc,ADDR OurText,-1, ADDR rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER
    invoke EndPaint,hWnd, ADDR ps
    .ELSE
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    ret
    .ENDIF
    xor eax,eax
    ret
    WndProc endp
    end start



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

    1-mov wc.cbSize,SIZEOF WNDCLASSEX مربوط به اندازه پنجره هستش میشه مثل برنامه هایی که توی ++c می نویسیم عدد هم بهش داد یه مثال هم میزنید.
    2-ساختاری رو که گفتید رو توی این برنامه گذاشتم (کپی) میشه بگید کجای برنامه باید فراخوانی تابع زمان رو انجام بدم
    3-واسه نمایش یه متن از خط زیر استفاده شده
    invoke DrawText, hdc,ADDR OurText,-1, ADDR rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER
    و از ADDR OurText که در قسمت datd تعریف کردیم متن رو به پنجره اضافه می کنیم .حالا توی برنامه شده eax زمان رو ذخیره کرده درسته اگه به جای ADDR OurText بزارم کار درستیه؟

  17. #17

    نقل قول: نشان دادن ساعت سیستم

    1-mov wc.cbSize,SIZEOF WNDCLASSEX مربوط به اندازه پنجره هستش میشه مثل برنامه هایی که توی ++c می نویسیم عدد هم بهش داد یه مثال هم میزنید.
    بله میشه
    2-ساختاری رو که گفتید رو توی این برنامه گذاشتم (کپی) میشه بگید کجای برنامه باید فراخوانی تابع زمان رو انجام بدم
    کد زیر چیزی که شما نیاز داری هست

    .486
    .model flat,stdcall
    option casemap:none

    lpStr macro Text :req
    local lText
    .data
    lText db Text
    .code
    exitm <addr lText>
    endm

    WinMain proto :DWORD,:DWORD,:DWORD,:DWORD


    include c:\masm32\include\windows.inc
    include c:\masm32\macros\macros.asm
    include c:\masm32\include\user32.inc
    include c:\masm32\include\kernel32.inc
    includelib c:\masm32\lib\user32.lib
    includelib c:\masm32\lib\kernel32.lib
    include c:\masm32\include\msvcrt.inc ;crt__ultoa
    includelib c:\masm32\lib\msvcrt.lib ;crt__ultoa




    .data
    ClassName db "SimpleWinClass",0
    AppName db "Our First Window",0
    OurText db "Win32 assembly is great and easy!",0


    MyString DB 20 dup(' '),0

    LTimeis db "LocalTime is: "
    HTime DB 2 dup (' ')
    SymTime db ':'
    STime DB 2 dup (' ')
    db 0

    .data?
    hInstance HINSTANCE ?
    CommandLine LPSTR ?

    stimestruct STRUCT
    wYear WORD ?
    wMonth WORD ?
    wDayOfWeek WORD ?
    wDay WORD ?
    wHour WORD ?
    wMinute WORD ?
    wSecond WORD ?
    wMilliseconds WORD ?
    stimestruct EndS

    stime stimestruct {}




    .code
    start:
    invoke GetModuleHandle, NULL
    mov hInstance,eax
    invoke GetCommandLine
    mov CommandLine,eax
    invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
    invoke ExitProcess,eax
    WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR, CmdShow:DWORD
    LOCAL wc:WNDCLASSEX
    LOCAL msg:MSG
    LOCAL hwnd:HWND
    mov wc.cbSize,SIZEOF WNDCLASSEX
    mov wc.style, CS_HREDRAW or CS_VREDRAW
    mov wc.lpfnWndProc, OFFSET WndProc
    mov wc.cbClsExtra,NULL
    mov wc.cbWndExtra,NULL
    push hInst
    pop wc.hInstance
    mov wc.hbrBackground,COLOR_WINDOW+1
    mov wc.lpszMenuName,NULL
    mov wc.lpszClassName,OFFSET ClassName
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov wc.hIcon,eax
    mov wc.hIconSm,0
    invoke LoadCursor,NULL,IDC_ARROW
    mov wc.hCursor,eax
    invoke RegisterClassEx, addr wc
    INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
    WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NUL L,\
    hInst,NULL
    mov hwnd,eax
    INVOKE ShowWindow, hwnd,SW_SHOWNORMAL
    INVOKE UpdateWindow, hwnd
    .WHILE TRUE
    INVOKE GetMessage, ADDR msg,NULL,0,0
    .BREAK .IF (!eax)
    INVOKE TranslateMessage, ADDR msg
    INVOKE DispatchMessage, ADDR msg
    .ENDW
    mov eax,msg.wParam
    ret
    WinMain endp
    WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    LOCAL hdc:HDC
    LOCAL ps:PAINTSTRUCT
    LOCAL rect:RECT
    .IF uMsg==WM_DESTROY
    invoke PostQuitMessage,NULL
    .ELSEIF uMsg==WM_PAINT
    invoke BeginPaint,hWnd, ADDR ps
    mov hdc,eax
    invoke GetClientRect,hWnd, ADDR rect
    call LTimep
    invoke DrawText, hdc,ADDR LTimeis,-1, ADDR rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER
    invoke EndPaint,hWnd, ADDR ps
    .ELSE
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    ret
    .ENDIF
    xor eax,eax
    ret
    WndProc endp

    LTimep proc
    lea ebx,stime
    push ebx
    call GetLocalTime

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wHour
    invoke crt__ultoa,eax,ADDR MyString,10

    mov ax,word ptr MyString
    mov word ptr HTime,ax
    cmp HTime+1,0
    jne next
    mov al,HTime
    xchg HTime+1,al
    mov HTime,' '
    next:

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wMinute
    invoke crt__ultoa,eax,ADDR MyString,10


    mov ax,word ptr MyString
    mov word ptr STime,ax
    cmp STime+1,0
    jne next2
    mov STime,al
    next2:


    ret
    LTimep endp
    end start


    3-واسه نمایش یه متن از خط زیر استفاده شده
    invoke DrawText, hdc,ADDR OurText,-1, ADDR rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER
    و از ADDR OurText که در قسمت datd تعریف کردیم متن رو به پنجره اضافه می کنیم .حالا توی برنامه شده eax زمان رو ذخیره کرده درسته اگه به جای ADDR OurText بزارم کار درستیه؟
    بله شما میخواین روی فرم نمایش بدین که در کد بالا براتون نوشتم

    موفق باشی

  18. #18

    نقل قول: نشان دادن ساعت سیستم

    .486
    .model flat,stdcall
    option casemap:none

    lpStr macro Text :req
    local lText
    .data
    lText db Text
    .code
    exitm <addr lText>
    endm

    WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\msvcrt.inc ;crt__ultoa
    include \masm32\macros\macros.asm


    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\msvcrt.lib ;crt__ultoa




    .data
    ClassName db "SimpleWinClass",0
    AppName db "Our First Window",0



    MyString DB 20 dup(' '),0

    LTimeis db "LocalTime is: "
    HTime DB 2 dup (' ')
    SymTime db ':'
    STime DB 2 dup (' ')
    db 0

    .data?
    hInstance HINSTANCE ?
    CommandLine LPSTR ?

    stimestruct STRUCT
    wYear WORD ?
    wMonth WORD ?
    wDayOfWeek WORD ?
    wDay WORD ?
    wHour WORD ?
    wMinute WORD ?
    wSecond WORD ?
    wMilliseconds WORD ?
    stimestruct EndS

    stime stimestruct {}




    .code
    start:
    invoke GetModuleHandle, NULL
    mov hInstance,eax
    invoke GetCommandLine
    mov CommandLine,eax
    invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
    invoke ExitProcess,eax
    WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR, CmdShow:DWORD
    LOCAL wc:WNDCLASSEX
    LOCAL msg:MSG
    LOCAL hwnd:HWND
    mov wc.cbSize,SIZEOF WNDCLASSEX
    mov wc.style, CS_HREDRAW or CS_VREDRAW
    mov wc.lpfnWndProc, OFFSET WndProc
    mov wc.cbClsExtra,NULL
    mov wc.cbWndExtra,NULL
    push hInst
    pop wc.hInstance
    mov wc.hbrBackground,COLOR_WINDOW+1
    mov wc.lpszMenuName,NULL
    mov wc.lpszClassName,OFFSET ClassName
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov wc.hIcon,eax
    mov wc.hIconSm,0
    invoke LoadCursor,NULL,IDC_ARROW
    mov wc.hCursor,eax
    invoke RegisterClassEx, addr wc
    INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
    WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
    CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NUL L,\
    hInst,NULL
    mov hwnd,eax
    INVOKE ShowWindow, hwnd,SW_SHOWNORMAL
    INVOKE UpdateWindow, hwnd
    .WHILE TRUE
    INVOKE GetMessage, ADDR msg,NULL,0,0
    .BREAK .IF (!eax)
    INVOKE TranslateMessage, ADDR msg
    INVOKE DispatchMessage, ADDR msg
    .ENDW
    mov eax,msg.wParam
    ret
    WinMain endp
    WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    LOCAL hdc:HDC
    LOCAL ps:PAINTSTRUCT
    LOCAL rect:RECT
    .IF uMsg==WM_DESTROY
    invoke PostQuitMessage,NULL
    .ELSEIF uMsg==WM_PAINT
    invoke BeginPaint,hWnd, ADDR ps
    mov hdc,eax
    invoke GetClientRect,hWnd, ADDR rect
    call LTimep
    invoke DrawText, hdc,ADDR LTimeis,-1, ADDR rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER
    invoke EndPaint,hWnd, ADDR ps
    .ELSE
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    ret
    .ENDIF
    xor eax,eax
    ret
    WndProc endp

    LTimep proc
    lea ebx,stime
    push ebx
    call GetLocalTime

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wHour
    invoke crt__ultoa,eax,ADDR MyString,10

    mov ax,word ptr MyString
    mov word ptr HTime,ax
    cmp HTime+1,0
    jne next
    mov al,HTime
    xchg HTime+1,al
    mov HTime,' '
    next:

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wMinute
    invoke crt__ultoa,eax,ADDR MyString,10


    mov ax,word ptr MyString
    mov word ptr STime,ax
    cmp STime+1,0
    jne next2
    mov STime,al
    next2:


    ret
    LTimep endp
    end start


    این برنامه اجرا نمیشه توی خط 91 از آرگومانها ایراد می گیره

  19. #19

    نقل قول: نشان دادن ساعت سیستم

    این برنامه اجرا نمیشه توی خط 91 از آرگومانها ایراد می گیره
    دوست عزیز ایکاش با دقت نگاه میکردین وقتی میگه آرگومان 10 در خط 91 مشکل داره با یک نگاه ساده میدیدین null به شکل nul l در اومده این مورد توی کد اول شما بود منم عمدا درست نکردم تا خودتون متوجه بشین،که حتی نگاهشم نکردین
    ضمنا قسمتهایی در کد اضافه هست ،برای اینکه اول خواستم با روش دیگه بنویسمش ،ماکرو اول برنامه و macros.asm اینکلود شده و OurText در دیتا سگمنت دیگه نیازی نیست ، پاکش کنید.
    موفق باشی

  20. #20

    نقل قول: نشان دادن ساعت سیستم

    ببخشید ما از همون اول گفتیم تازه کاریم .البته حق با شماست یکم باید به پیغام بیشتر توجه می کردم .

    چندتا سوال

    lpStr macro Text :req
    local lText
    .data
    lText db Text
    .code
    exitm <addr lText>
    endm



    این ماکرو رو واسه چی تعریف کردید؟
    میشه در مورد قسمت شرطیش هم یه توضیح بدید چون متوجه کارش نمیشم.

    در مورد اندازه پنجره چطوری از عدد واسش استفاده کنم ؟

    ممنون

  21. #21

    نقل قول: نشان دادن ساعت سیستم

    این ماکرو رو واسه چی تعریف کردید؟
    گفتم که چه قسمتهایی رو پاک کنید!
    و ماکرو کارش اینه مثلا میخواین به مسیج باکس بنویسید برای اینکه هی نرین توی دیتا سگنت آدرس بزارین یه رشته همونجا مینویسین این ماکرو خودش در دیتا سگمنت قرار میده ، اما همونطور که در پست قبل گفتم نیازی نیست پاکش کنید
    میشه در مورد قسمت شرطیش هم یه توضیح بدید چون متوجه کارش نمیشم.
    قسمت شرطیش برای نوع قرار گرفتن اعداد به کار میره همین! مثلا اگر تک رقمی هست برای ساعت سمت راست کنار دو نقطه نمایش میدش نه با فاصله و برای دقیقه هم به همین شکله به دونقطه نزدیکش میکنم
    در مورد اندازه پنجره چطوری از عدد واسش استفاده کنم ؟
    سایز آف خروجیش عدد هست شما عدد ثابت بزارین مثلا 4
    سعی کنید برنامه رو در windbg یا ollydbg دیباگ کنید تا بهتر متوجه بشین
    موفق باشی

  22. #22

    نقل قول: نشان دادن ساعت سیستم

    .486
    .model flat,stdcall
    option casemap:none


    WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\msvcrt.inc ;crt__ultoa
    include \masm32\macros\macros.asm


    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\msvcrt.lib ;crt__ultoa




    .data
    ClassName db "SimpleWinClass",0
    AppName db "Our First Window",0
    OurText db "Win32 assembly is great and easy!",0


    MyString DB 20 dup(' '),0

    LTimeis db "LocalTime is: "
    HTime DB 2 dup (' ')
    SymTime db ':'
    STime DB 2 dup (' ')
    db 0
    wwd WORD ?
    wht WORD ?

    .data?
    hInstance HINSTANCE ?
    CommandLine LPSTR ?

    stimestruct STRUCT
    wYear WORD ?
    wMonth WORD ?
    wDayOfWeek WORD ?
    wDay WORD ?
    wHour WORD ?
    wMinute WORD ?
    wSecond WORD ?
    wMilliseconds WORD ?
    stimestruct EndS

    stime stimestruct {}




    .code
    start:
    invoke GetModuleHandle, NULL
    mov hInstance,eax
    invoke GetCommandLine
    mov CommandLine,eax
    invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
    invoke ExitProcess,eax
    WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR, CmdShow:DWORD
    LOCAL wc:WNDCLASSEX
    LOCAL msg:MSG
    LOCAL hwnd:HWND
    mov wc.cbSize,SIZEOF WNDCLASSEX
    mov wc.style, CS_HREDRAW or CS_VREDRAW
    mov wc.lpfnWndProc, OFFSET WndProc
    mov wc.cbClsExtra,NULL
    mov wc.cbWndExtra,NULL
    push hInst
    pop wc.hInstance
    mov wc.hbrBackground,COLOR_WINDOW+1
    mov wc.lpszMenuName,NULL
    mov wc.lpszClassName,OFFSET ClassName
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov wc.hIcon,eax
    mov wc.hIconSm,0
    invoke LoadCursor,NULL,IDC_ARROW
    mov wc.hCursor,eax
    mov wwd,10
    mov wht,5
    invoke RegisterClassEx, addr wc
    INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
    WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
    CW_USEDEFAULT,wwd,wht,NULL,NULL,\
    hInst,NULL
    mov hwnd,eax
    INVOKE ShowWindow, hwnd,SW_SHOWNORMAL
    INVOKE UpdateWindow, hwnd
    .WHILE TRUE
    INVOKE GetMessage, ADDR msg,NULL,0,0
    .BREAK .IF (!eax)
    INVOKE TranslateMessage, ADDR msg
    INVOKE DispatchMessage, ADDR msg
    .ENDW
    mov eax,msg.wParam
    ret
    WinMain endp
    WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    LOCAL hdc:HDC
    LOCAL ps:PAINTSTRUCT
    LOCAL rect:RECT
    .IF uMsg==WM_DESTROY
    invoke PostQuitMessage,NULL
    .ELSEIF uMsg==WM_PAINT
    invoke BeginPaint,hWnd, ADDR ps
    mov hdc,eax
    invoke GetClientRect,hWnd, ADDR rect
    call LTimep
    invoke DrawText, hdc,ADDR LTimeis,-1, ADDR rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER
    invoke EndPaint,hWnd, ADDR ps
    .ELSE
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    ret
    .ENDIF
    xor eax,eax
    ret
    WndProc endp

    LTimep proc
    lea ebx,stime
    push ebx
    call GetLocalTime

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wHour
    invoke crt__ultoa,eax,ADDR MyString,10

    mov ax,word ptr MyString
    mov word ptr HTime,ax
    cmp HTime+1,0
    jne next
    mov al,HTime
    xchg HTime+1,al
    mov HTime,' '
    next:

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wMinute
    invoke crt__ultoa,eax,ADDR MyString,10


    mov ax,word ptr MyString
    mov word ptr STime,ax
    cmp STime+1,0
    jne next2
    mov STime,al
    next2:


    ret
    LTimep endp
    end start

  23. #23

    نقل قول: نشان دادن ساعت سیستم

    توی خط 35 و 36 دوتا متغیر تعریف کردم البته میدونم جاشون اشتباه است

    توی خط 85 و 86 بهشون مقدار دادم و توی خط 90 ازشون استفاده کردم ولی اندازه ارتفاع هر اندزه ایی میدم یکسانه و به اندازه کل صفحه میشه چرا؟

    توی خط 89 و 90 این دوتا CW_USEDEFAULT ارگومان واسه تعیین position است ؟اگه آره چطور باید مقدار دهی بشن از روش بالا استفاده کردم نشد

  24. #24

    نقل قول: نشان دادن ساعت سیستم

    ممنون میشم بگید کجای کار رو اشتباه کردم.



    .486
    .model flat,stdcall
    option casemap:none


    WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    include \masm32\include\msvcrt.inc ;crt__ultoa
    include \masm32\macros\macros.asm


    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    includelib \masm32\lib\msvcrt.lib ;crt__ultoa




    .data
    ClassName db "SimpleWinClass",0
    AppName db "Local Time",0


    MyString DB 20 dup(' '),0

    LTimeis db "LocalTime is: "
    HTime DB 2 dup (' ')
    SymTime db ':'
    STime DB 2 dup (' ')
    db 0


    .data?

    hInstance HINSTANCE ?
    CommandLine LPSTR ?


    width_w WORD ?
    height_w WORD ?

    stimestruct STRUCT
    wYear WORD ?
    wMonth WORD ?
    wDayOfWeek WORD ?
    wDay WORD ?
    wHour WORD ?
    wMinute WORD ?
    wSecond WORD ?
    wMilliseconds WORD ?
    stimestruct EndS

    stime stimestruct {}




    .code
    start:
    invoke GetModuleHandle, NULL
    mov hInstance,eax
    invoke GetCommandLine
    mov CommandLine,eax
    invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
    invoke ExitProcess,eax
    WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR, CmdShow:DWORD
    LOCAL wc:WNDCLASSEX
    LOCAL msg:MSG
    LOCAL hwnd:HWND
    mov wc.cbSize,SIZEOF WNDCLASSEX
    mov wc.style, CS_HREDRAW or CS_VREDRAW
    mov wc.lpfnWndProc, OFFSET WndProc
    mov wc.cbClsExtra,NULL
    mov wc.cbWndExtra,NULL
    push hInst
    pop wc.hInstance
    mov wc.hbrBackground,COLOR_WINDOW+1
    mov wc.lpszMenuName,NULL
    mov wc.lpszClassName,OFFSET ClassName
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov wc.hIcon,eax
    mov wc.hIconSm,0
    invoke LoadCursor,NULL,IDC_ARROW
    mov wc.hCursor,eax
    mov width_w,200
    mov height_w,200
    invoke RegisterClassEx, addr wc
    INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
    WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
    CW_USEDEFAULT,width_w,height_w,NULL,NULL,\
    hInst,NULL
    mov hwnd,eax
    INVOKE ShowWindow, hwnd,SW_SHOWNORMAL
    INVOKE UpdateWindow, hwnd
    .WHILE TRUE
    INVOKE GetMessage, ADDR msg,NULL,0,0
    .BREAK .IF (!eax)
    INVOKE TranslateMessage, ADDR msg
    INVOKE DispatchMessage, ADDR msg
    .ENDW
    mov eax,msg.wParam
    ret
    WinMain endp
    WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
    LOCAL hdc:HDC
    LOCAL ps:PAINTSTRUCT
    LOCAL rect:RECT
    .IF uMsg==WM_DESTROY
    invoke PostQuitMessage,NULL
    .ELSEIF uMsg==WM_PAINT
    invoke BeginPaint,hWnd, ADDR ps
    mov hdc,eax
    invoke GetClientRect,hWnd, ADDR rect
    call LTimep
    invoke DrawText, hdc,ADDR LTimeis,-1, ADDR rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER
    invoke EndPaint,hWnd, ADDR ps
    .ELSE
    invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    ret
    .ENDIF
    xor eax,eax
    ret
    WndProc endp

    LTimep proc
    lea ebx,stime
    push ebx
    call GetLocalTime

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wHour
    invoke crt__ultoa,eax,ADDR MyString,10

    mov ax,word ptr MyString
    mov word ptr HTime,ax
    cmp HTime+1,0
    jne next
    mov al,HTime
    xchg HTime+1,al
    mov HTime,' '
    next:

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wMinute
    invoke crt__ultoa,eax,ADDR MyString,10


    mov ax,word ptr MyString
    mov word ptr STime,ax
    cmp STime+1,0
    jne next2
    mov STime,al
    next2:


    ret
    LTimep endp
    end start

  25. #25

    نقل قول: نشان دادن ساعت سیستم

    برای رفع مشکلتون با تابع CreateWindowEx به این لینک سر بزنید و پارامتر ها رو بررسی کنید مشکلتون حل میشه

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

    موفق باشید
    آخرین ویرایش به وسیله xman_1365_x : سه شنبه 22 آذر 1390 در 14:48 عصر

  26. #26

    نقل قول: نشان دادن ساعت سیستم

    LTimep proc
    lea ebx,stime
    push ebx
    call GetLocalTime

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wHour
    invoke crt__ultoa,eax,ADDR MyString,10

    mov ax,word ptr MyString
    mov word ptr HTime,ax
    cmp HTime+1,0
    jne next
    mov al,HTime
    xchg HTime+1,al
    mov HTime,' '
    next:

    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wMinute
    invoke crt__ultoa,eax,ADDR MyString,10


    mov ax,word ptr MyString
    mov word ptr STime,ax
    cmp STime+1,0
    jne next2
    mov STime,al
    next2:


    ret
    LTimep endp


    میشه این قسمت کد رو توضیح بدید .هرچی کاملتر باشه بهتره
    ممنون

  27. #27

    نقل قول: نشان دادن ساعت سیستم

    میشه این قسمت کد رو توضیح بدید .هرچی کاملتر باشه بهتره
    این تابع برای گرفتن زمان و تبدیل کردنش به رشته با فرمت خاص هست که نتیجه در آدرس های زیر قرار میگیره
    LTimeis     db "LocalTime is: "
    HTime DB 2 dup (' ')
    SymTime db ':'
    STime DB 2 dup (' ')
    db 0

    در ویندوز برای نمایش رشته ها باید رشته ای درست کنیم که به نال ختم میشه(مثلا تابع DrawText که پارامتر خودمون رو بهش ارسال میکنیم)
    lea ebx,stime
    push ebx
    call GetLocalTime
    این تابع یک api ویندوز هست که ساعت جاری سیستم رو در ساختمانی که بهش دادیم بر میگردونه
    در دستورات زیر مقدار عددی ساعت را با تایع crt__ultoa به رشته تبدیل میکنیم
    xor eax,eax
    mov al,byte ptr [ebx].stimestruct.wHour
    invoke crt__ultoa,eax,ADDR MyString,10
    دستورات زیر فرمت خاصی به رشتمون میده و از بافر(MyString) اطلاعات رو در HTime قرار میدیم ،HTime دو بایت در نظر گرفتم برای اینکه ساعت دو رقم داره و در قسمت فرمت برسی میکنم اگر ساعت تک رقمی شده بجای صفر عددی که برابر با نال یعنی انتهای رشته هست اسپیس رو قرار میدم تا ادامه رشته هم نمایش داده بشه میتونین بجای اسپیس کاراکتر 0 قرار بدین
    mov ax,word ptr MyString
    mov word ptr HTime,ax
    cmp HTime+1,0
    jne next
    mov al,HTime
    xchg HTime+1,al
    mov HTime,' '
    next:

    ادامه کد هم به همین صورت برای دقیقه میباشد.
    موفق باشی

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

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