Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 13 kết quả

Đề tài: Lập trinh ngắt CPU 8086

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

    Question Lập trinh ngắt CPU 8086

    Tui có bài ngắt đơn giản ntn nhưng vì trình độ hơi kém nên... Lỗi thì chắc không có đâu nhưng mà 100% là không chạy. (PRO)2 giúp tui debug & giải thuật cho tui với. Thanks.
    PS: Ai có sách Lập trình hệ thống (đặc biệt là ngắt) share cho tui với.(Anh Việt gì cũng OK)
    C Code:
    1. #include<stdio.h>
    2.       #include<conio.h>
    3.       #include<dos.h>
    4.     //----------------------------------
    5.         int nhap(void);
    6.         void in10(int x);
    7.         void xoamh(void);
    8.     //-------------------------------------
    9.          main()
    10.              {
    11.                  int x;
    12.                  union REGS vao,ra;
    13.                  xoamh();
    14.                  x=nhap();
    15.                  in10(x)
    16.                  getch();
    17.              }
    18.           //Khai báo các hàm
    19.            void xoamh(void)
    20.               {
    21.                     union REGS vao,ra;
    22.                     vao.h.ah=6;       //mình không biết vao,ra có nghĩa gì và mấy số liệu 6,0,0,24,79,7 có ở đâu
    23.                     vao.h.al=0;        //tui không biết trong các thanh ghi al,ah... chứa gì trong đó
    24.                     vao.x.cx =0;
    25.                     vao.h.dh=24;
    26.                     vao.h.dl=79;
    27.                     vao.h.bx=7;
    28.               }
    29.           int nhap(void)
    30.                {
    31.                    union REGS vao,ra;
    32.                    int x=0;
    33.                    unsigned char a;
    34.                        do
    35.                           {
    36.                               vao.h.al=1;
    37.                               intdos(&vao,&ra);
    38.                                  if(ra.h.al==13) goto L1;
    39.                                       a=ra.h.al;
    40.                                  if(a<=0x39) goto L2;
    41.                                   a-=39;
    42.                          L2: a-=0x30;
    43.                                x<<4;
    44.                                x|=a;
    45.                       L1:} while(ra.h.al)!=13);
    46.                    return x;//Mấy cái L1,L2 ấy có tác dụng gì thế
    47.                }
    48.              void in10(int x)
    49.                  {
    50.                      union REGS vao,ra;
    51.                      char a[5],i=0,b;
    52.                      while(x!=0)
    53.                        {
    54.                         a[i]=x%10;
    55.                         x/=10;          
    56.                         i++;
    57.                        }
    58.                   for(b=i-1;b>=0;b--)
    59.                          {
    60.                              vao.h.dl=a[b]+0x30;
    61.                              vao.h.ah=2;
    62.                               intdos(&vao,&ra);
    63.                           }

    Vui lòng để code vào tag code. Đọc Nội quy để biết thêm chi tiết
    Đã được chỉnh sửa lần cuối bởi Kevin Hoang : 28-05-2008 lúc 10:11 PM. Lý do: Nhắc nhở

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    anh có tài liệu lập trình ngắt 8086 không ah.có thể share không...cảm ơn

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

    Bạn tham khảo ở đây nè. Nó chú thích rất kỹ. Đọc xong là bạn sẽ hiểu đoạn code trên nói gì.
    Attached Files Attached Files
    • Kiểu file: rar NG.rar (157.7 KB, 723 views)
    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.

  4. #4
    Ngày gia nhập
    07 2008
    Bài viết
    5

    AH trong chương trinh là thanh ghi, nó có vai trò là giữ số hiệu của hàm trong dos.
    AH=6 hex: hàm đọc ghi trục tiếp từ màn hình
    AL: dùng để đọc
    DL: dùng để ghi
    nếu DL=ff hex kthi AL sẵn sàng nhận kí tự.
    nếu DL# ff hex thi đó là kí tự cần đưa ra thiết bị.
    nếy có lỗi nó sẽ báo qua cờ ZF.

  5. #5
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Bạn tham khảo ở đây nè. Nó chú thích rất kỹ. Đọc xong là bạn sẽ hiểu đoạn code trên nói gì.
    mình thấy có code nào đâu,chỉ toàn là exe thôi

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

    Mặc định Lập trinh ngắt CPU 8086

    Thì nó là ebook dạng exe mà. Bạn chạy nó trước khi vào BC, sau đó khi nào cần hướng dẫn nhấn Shift + F1
    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.

  7. #7
    Ngày gia nhập
    09 2008
    Bài viết
    6

    file ebook ma ban dua len dau co chay duoc dau. No bi loi gi nhi to chay chi hien len cai menu roi nghi luon

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

    Trích dẫn Nguyên bản được gửi bởi ghost_IT Xem bài viết
    file ebook ma ban dua len dau co chay duoc dau. No bi loi gi nhi to chay chi hien len cai menu roi nghi luon
    Đầu tiên bạn chạy file ebook. Sau đó bạn chạy bc31 rồi nhấn Shift + F1.
    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.

  9. #9
    Ngày gia nhập
    09 2008
    Bài viết
    6

    L1, l2 la cac lable.
    vi du: if(ra.h.al==13) goto L1; // if ki tu nhap vao la fim enter tuong ung voi ma ascii la 13 thi chay den lam viec voi lenh L1: }while(ra.h.al)!=13);
    Cac thanh ghi Ax,Bx, Cx, Dx la nhung than ghi da nang dai 16 bit.
    ax: chua ket qua. No gom 2 thanh 8 bit la: ah va al
    bx: chứa kết quả, đánh địa chỉ cơ sở. No gom 2 thanh 8 bit la :bh va bl
    cx: chua số lần dịch,quay của cac lệnh dịch,quay số liệu. Cx gom ch va cl
    dx: dung de chua du lieu khi thực hien phep toan 16 bit. Luc nay no ket hợp với thanh ghi Ax de tao thanh 32 bit thao tac doi voi cac phep toan 16 bit.

  10. #10
    Ngày gia nhập
    07 2007
    Bài viết
    3

    cam on ban nhieu to dang hoc lap trinh he thong

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

  1. Cùng Nhau Ngắm Vẻ Đẹp Bên Trong của Ngọc Trinh
    Gửi bởi traibgvkl trong diễn đàn Giải trí - Thư giãn
    Trả lời: 0
    Bài viết cuối: 03-04-2013, 01:16 PM
  2. Trả lời: 0
    Bài viết cuối: 03-06-2011, 08:35 PM
  3. xin giao trinh lap trinh c for win tren moi truong MFC
    Gửi bởi phiquang40 trong diễn đàn Công cụ, ebooks VC++
    Trả lời: 0
    Bài viết cuối: 02-03-2010, 10:58 AM
  4. Ngắt trong C, Giúp chỉnh sửa code về ngắt
    Gửi bởi darkryte trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 17-11-2007, 07:21 PM
  5. Lập trình ngắt | Interupt | Ngắt 33h của Dos, Giúp mình xử lý!
    Gửi bởi thang@ 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: 15-10-2007, 10:34 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