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

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

  1. #1

    Question مشکل در برنامه

    سلام
    اگه جواب بدید ممنون میشم

    کد زیر یه رشته رو میگیره و توی بافری که معرفی کردم ذخیره میکنه
    ولی وقتی خونه اولو توی متغیر T میزارم بجای کارکتر اول 0DH ذخیره شده




    STSEG SEGMENT
    DB 128 DUP(?)
    STSEG ENDS

    DTSEG SEGMENT
    BUF1 LABEL BYTE
    BUFS1 DB 20
    BUFC1 DB ?
    BUFA1 DB 20 DUP(?)

    T DB ?

    DTSEG ENDS


    CSEG SEGMENT
    MAIN PROC FAR
    ASSUME SS:STSEG,DS:DTSEG,CS:DTSEG
    MOV AX,DTSEG
    MOV DS,AX

    MOV AH,0AH
    MOV DX,OFFSET BUF1
    INT 21H

    MOV BX,OFFSET BUFA1


    MOV AL,[BX]
    MOV T,AL


    MOV AH,4CH
    INT 21H

    MAIN ENDP

    CSEG ENDS
    END MAIN


  2. #2
    کاربر دائمی آواتار masoud.8086
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    نيشابور
    پست
    230

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

    سلام نه کد مشکل نداره احتمالا رشته وارد نمیکنی و مستقیم enter میزنی!

  3. #3

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

    نقل قول نوشته شده توسط masoud.8086 مشاهده تاپیک
    سلام نه کد مشکل نداره احتمالا رشته وارد نمیکنی و مستقیم enter میزنی!
    والا خودمم نگا میکنم میشکل نداره
    چرا رشته میزنم
    بعد مراحلشو نگا میکنم میبینم چیزی ذخیره نمیکنه

  4. #4

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

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

    تو بافر اول ذخیره میشه ولی تو بافر دوم نمیشه

  5. #5
    کاربر دائمی آواتار masoud.8086
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    نيشابور
    پست
    230

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

    منظورت مبهمه؟؟؟؟یعنی چی تو دو تا بافر تو اولی ذخیره میشه تو یکی نمیشه؟؟؟
    آخرین ویرایش به وسیله masoud.8086 : سه شنبه 02 دی 1393 در 21:38 عصر

  6. #6

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

    نقل قول نوشته شده توسط masoud.8086 مشاهده تاپیک
    منظورت مبهمه؟؟؟؟یعنی چی تو دو تا بافر تو اولی ذخیره میشه تو یکی نمیشه؟؟؟
    خب بافرو نگا کنید اندازه رشته توی bufs1 ذخیره میشه و اندازه رشته ورودی هم 1bufc و خود رشته هم bufa1

  7. #7

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

    نقل قول نوشته شده توسط masoud.8086 مشاهده تاپیک
    منظورت مبهمه؟؟؟؟یعنی چی تو دو تا بافر تو اولی ذخیره میشه تو یکی نمیشه؟؟؟
    مثل کد زیر


    STSEG SEGMENT
    DB 128 DUP(?)
    STSEG ENDS




    DTSEG SEGMENT
    BUF1 LABEL BYTE
    BUFS1 DB 20
    BUFC1 DB ?
    BUFA1 DB 20 DUP(?)

    BUF2 LABEL BYTE
    BUFS2 DB 20
    BUFC2 DB ?
    BUFA2 DB 20 DUP(?)

    T DB ?

    DTSEG ENDS



    CSEG SEGMENT
    MAIN PROC FAR
    ASSUME SS:STSEG,DS:DTSEG,CS:DTSEG
    MOV AX,DTSEG
    MOV DS,AX

    MOV AH,0AH
    MOV DX,OFFSET BUF1
    INT 21H

    MOV AH,0AH
    MOV DX,OFFSET BUF2
    INT 21H

    MOV BX,OFFSET BUFA1
    MOV SI,OFFSET BUFA2

    MOV AL,[BX]
    MOV T,AL

    MOV AL,[SI]
    MOV T,AL




    MOV AH,4CH
    INT 21H

    MAIN ENDP

    CSEG ENDS
    END MAIN




  8. #8
    کاربر دائمی آواتار masoud.8086
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    نيشابور
    پست
    230

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

    ببینید برای تعریف بافر بیاید از این روش استفاده کنید(البته این فقط موقعی که داری از ورودی دریافت میکنی )
    a db 21,21 dup(?)
    خوب اینجا نیازی به اندازه رشته نیس اینجا خونه اول آرایت همیشه خالیه و خونه دوم که اندیس یک هست اندازه طول رشتت وجود داره
    بعد میتونی با استفاده ا از lea dx, a یا با استفاده از offset به خونهها ارایت درستذسی داشته باشی
    فقط ی نکته میمونه این که باید از اندیس دوم خونه های ارایت به بعد استفاده کنی چون گفتم خونه اول و دوم یعنی خونه صفر و یک رزوو شدس
    mov si,2
    mov bx,offset a [si]
    مشکل بعدی اینکه وقتی ی مقدار از بافر اولت داخل t میریزی و خط پایین تر داری ی مقدار از بافر بعدی داخل t میریزی که باعث میشه مقدار قبلی t حذف بشه..
    موفق باشی.

  9. #9

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

    نقل قول نوشته شده توسط masoud.8086 مشاهده تاپیک
    ببینید برای تعریف بافر بیاید از این روش استفاده کنید(البته این فقط موقعی که داری از ورودی دریافت میکنی )
    a db 21,21 dup(?)
    خوب اینجا نیازی به اندازه رشته نیس اینجا خونه اول آرایت همیشه خالیه و خونه دوم که اندیس یک هست اندازه طول رشتت وجود داره
    بعد میتونی با استفاده ا از lea dx, a یا با استفاده از offset به خونهها ارایت درستذسی داشته باشی
    فقط ی نکته میمونه این که باید از اندیس دوم خونه های ارایت به بعد استفاده کنی چون گفتم خونه اول و دوم یعنی خونه صفر و یک رزوو شدس
    mov si,2
    mov bx,offset a [si]
    مشکل بعدی اینکه وقتی ی مقدار از بافر اولت داخل t میریزی و خط پایین تر داری ی مقدار از بافر بعدی داخل t میریزی که باعث میشه مقدار قبلی t حذف بشه..
    موفق باشی.
    اینجوری که شما هم میگید تعریف کردم بافرو باز هم همونطوری میشه
    این T رو برای اینکه ببینم تو خونه اولشون چی ذخیره میشه گذاشتم و قبل و بعدشو چک میکنم

  10. #10
    کاربر دائمی آواتار masoud.8086
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    نيشابور
    پست
    230

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

    ببین اصلا برنامه مشکل نداره برنامتو تو 8086 اجرا کن و توی vars نگاه کن دقیقا درست کار میکنه!!!
    موفق باشی.

  11. #11

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

    نقل قول نوشته شده توسط masoud.8086 مشاهده تاپیک
    ببین اصلا برنامه مشکل نداره برنامتو تو 8086 اجرا کن و توی vars نگاه کن دقیقا درست کار میکنه!!!
    موفق باشی.
    ممنون که پاسخ میدی
    خب تو var نگاه کردم دیدم که نمیگیره :))
    نمیدونم شاید مشکل از برنامه یا جای دیگه باشه

  12. #12

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

    نقل قول نوشته شده توسط mmehdi21 مشاهده تاپیک
    ممنون که پاسخ میدی
    خب تو var نگاه کردم دیدم که نمیگیره :))
    نمیدونم شاید مشکل از برنامه یا جای دیگه باشه
    دوست عزیز اگر میشه اول صورت مسئله رو درست مطرح کنید!
    در برنامه دوم شما فقط یک T تعریف کردین که با گرفتن بافر دوم مقدار کاراکتر بافر اول از دست میره


    STSEG SEGMENT
    DB 128 DUP(?)
    STSEG ENDS


    DTSEG SEGMENT
    BUF1 LABEL BYTE
    BUFS1 DB 20
    BUFC1 DB ?
    BUFA1 DB 20 DUP(?)

    BUF2 LABEL BYTE
    BUFS2 DB 20
    BUFC2 DB ?
    BUFA2 DB 20 DUP(?)

    T1 DB ?
    T2 DB ?

    DTSEG ENDS



    CSEG SEGMENT
    MAIN PROC FAR
    ASSUME SS:STSEG,DS:DTSEG,CS:DTSEG
    MOV AX,DTSEG
    MOV DS,AX

    MOV AH,0AH
    MOV DX,OFFSET BUF1
    INT 21H

    MOV AH,0AH
    MOV DX,OFFSET BUF2
    INT 21H

    MOV BX,OFFSET BUFA1
    MOV SI,OFFSET BUFA2

    MOV AL,[BX]
    MOV T1,AL

    MOV AL,[SI]
    MOV T2,AL



    MOV AH,4CH
    INT 21H

    MAIN ENDP

    CSEG ENDS
    END MAIN

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

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

  1. مشکل با برنامه های پس از نصب دوباره دلفی
    نوشته شده توسط nasr در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: چهارشنبه 13 خرداد 1383, 19:08 عصر
  2. مشکل اجرای برنامه به روی IIS
    نوشته شده توسط jirjirakk در بخش PHP
    پاسخ: 1
    آخرین پست: دوشنبه 14 اردیبهشت 1383, 17:57 عصر

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

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