anh có tài liệu lập trình ngắt 8086 không ah.có thể share không...cảm ơn
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:
#include<stdio.h> #include<conio.h> #include<dos.h> //---------------------------------- int nhap(void); void in10(int x); void xoamh(void); //------------------------------------- main() { int x; union REGS vao,ra; xoamh(); x=nhap(); in10(x) getch(); } //Khai báo các hàm void xoamh(void) { union REGS vao,ra; 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 vao.h.al=0; //tui không biết trong các thanh ghi al,ah... chứa gì trong đó vao.x.cx =0; vao.h.dh=24; vao.h.dl=79; vao.h.bx=7; } int nhap(void) { union REGS vao,ra; int x=0; unsigned char a; do { vao.h.al=1; intdos(&vao,&ra); if(ra.h.al==13) goto L1; a=ra.h.al; if(a<=0x39) goto L2; a-=39; L2: a-=0x30; x<<4; x|=a; L1:} while(ra.h.al)!=13); return x;//Mấy cái L1,L2 ấy có tác dụng gì thế } void in10(int x) { union REGS vao,ra; char a[5],i=0,b; while(x!=0) { a[i]=x%10; x/=10; i++; } for(b=i-1;b>=0;b--) { vao.h.dl=a[b]+0x30; vao.h.ah=2; intdos(&vao,&ra); }
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ở
anh có tài liệu lập trình ngắt 8086 không ah.có thể share không...cảm ơn
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ì.
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.
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.
mình thấy có code nào đâu,chỉ toàn là exe thôiBạ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ì.
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.
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
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.
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.
cam on ban nhieu to dang hoc lap trinh he thong