Từ 1 tới 4 trên tổng số 4 kết quả

Đề tài: Mọi gười làm ơn giải thích vd ngắt 0X21 đơn giản này?

  1. #1
    Ngày gia nhập
    05 2008
    Bài viết
    24

    Mặc định Mọi gười làm ơn giải thích vd ngắt 0X21 đơn giản này?

    vd:Nhập số nguyên kiểu int rồi in ra kiểu hex (tất cả dùng ngắt 0X21)
    Lời giải: (Chạy là treo máy luôn. Không biết sai chỗ nào?)

    #include <stdio.h>
    #include <conio.h>
    #include <dos.h>
    //----------------------
    int nhap(int *n,int &k);
    void inhex(int x);
    //----------------------
    union REGS v,r;
    main()
    {
    int n,x,k;
    x=nhap(&n,k);
    inhex(x);
    getch();
    }
    int nhap(int *n,int &k)
    { int x=0,i;
    do{ L1:
    v.h.ch=1;
    int86(0x21,&v,&r);
    if(r.h.al==13) goto L2;
    i=r.h.al-0x30;
    if(i<0||i>9){i=0;goto L1;}//Nhap lai khi go nham
    x=x*10+i;
    L2:
    }while(r.h.al!=13);
    *n=x;k=x;
    return(x);
    }
    void inhex(int x)
    {
    int b;
    unsigned char a;
    v.x.ax=0;
    b=v.x.ax;
    L3:
    a=v.h.ah;
    a>>=4;
    if(a<=9) goto L4;
    L4:
    a+=0x30;
    v.h.dl=a;
    v.h.ah=2;
    int86(0x21,&v,&r);
    b=v.x.ax<=4;
    goto L3;
    }

    Tui chỉ ráp nối thuật toán lại thôi nên không hiểu cấu trúc của một chương trình chặn ngắt là ntn? L1...Ln là gì? Cách dùng ra sao? Tui biết dữ liệu được chứa trong các thanh ghi ah,al,dl.... nhưng tại sao phải ghi là biến.h.thanhghi. Cuối cùng ai có tài liệu nào hứong dẫn về vấn đề này không? Và bạn có vui lòng share cho tui? THANKS, THANKS, THANKS, THANKS..............

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Mấy bài về ngắt khi chạy trong console của WinXP thường rất hay bị lỗi. Muốn học về ngắt, tốt nhất là bạn nên cài một máy ảo chạy Win98.
    Còn đây là tài liệu về lập trình ngắt nè bạn :
    http://forums.congdongcviet.com/show...47&postcount=3
    Bạn chạy ng.exe trước khi chạy bc. Khi nào cần coi hướng dẫn thì nhấn Shilft + F1
    Đã được chỉnh sửa lần cuối bởi meoconlongvang : 06-08-2008 lúc 11:30 PM.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    05 2008
    Bài viết
    24

    Trích dẫn Nguyên bản được gửi bởi meoconlongvang Xem bài viết
    Mấy bài về ngắt khi chạy trong console của WinXP thường rất hay bị lỗi. Muốn học về ngắt, tốt nhất là bạn nên cài một máy ảo chạy Win98.
    Còn đây là tài liệu về lập trình ngắt nè bạn :
    http://forums.congdongcviet.com/show...47&postcount=3
    Bạn chạy ng.exe trước khi chạy bc. Khi nào cần coi hướng dẫn thì nhấn Shilft + F1
    meoconlongvang ah không có gì hết. Chạy file NG.exe nó báo installed. Active Shift-F1. Bấm Shift+F1 cũng ko có gì cả. Tui đang dùng BC 3.1 chỉ có cái này mới viết được chương trình ngắt thôi, BC 5 ko dùng được? Mà có ai biết vì sao bài trên không chạy được không? Làm treo máy nữa?

  4. #4
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    Bạn chạy ng trước, sau đó chạy bc31. Khi nào cần help thì nhấn shilft + f1, ng sẽ thay thế help của bc31. Bạn dùng bc31 nhưng mà chạy trên console của winxp thì khi truy xuất ngắt 21h thường rất dễ gây ra lỗi vì ngắt xảy ra trong console của winxp là ngắt giả lập, ngắt thật thì bị chặn hết rồi.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

Các đề tài tương tự

  1. Bài tập C++ Nhập 1 số n kiểu long( dùng ngắt 0X21), rồi đổi n ra xâu ký tự thập phân TP char *s?
    Gửi bởi nicky2222 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 04-05-2012, 03:06 PM
  2. Nhập 1 số n kiểu long (dùng ngắt 0X21), rồi đổi n ra xâu ký tự thập phân TP char *s
    Gửi bởi hklong trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 2
    Bài viết cuối: 01-03-2012, 04:47 PM
  3. Bài tập C++ số giả ngẫu nhiên
    Gửi bởi tranduyphuong211 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 17-01-2012, 09:32 AM
  4. Lập trình C chương trình giải bài toán đơn hình và đơn hình đối ngẩu
    Gửi bởi gavjp trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 31-05-2010, 12:29 AM
  5. ngắt trên C. Xin giải đáp giúp?
    Gửi bởi PNT265 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 05-04-2010, 06:59 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn