banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Những thảo luận khác Hỏi về chương trình phục vụ ngắt  XML
  [Question]   Hỏi về chương trình phục vụ ngắt 25/01/2013 10:21:34 (+0700) | #1 | 273024
gamo1102
Member

[Minus]    0    [Plus]
Joined: 10/08/2012 06:01:14
Messages: 32
Offline
[Profile] [PM]
Mình đang học assembly, có một câu hỏi nhờ các bạn giải thích giùm: Khi hệ điều hành được nạp vào bộ nhớ thì 1024bytes thấp nhất chứa địa chỉ của 256 chương trình phục vụ ngắt( mỗi ngắt chiếm 4byte). Vậy mình muốn hỏi các chương trình phục vụ ngắt đó ở đâu ra( ý mình là chương trình ngắt đó của hệ điệu hành hay là có sẵn trong bios hay là ở đâ...)
Cám ơn các bạn.
[Up] [Print Copy]
  [Question]   Hỏi về chương trình phục vụ ngắt 25/01/2013 21:59:00 (+0700) | #2 | 273040
Stanley_00
Member

[Minus]    0    [Plus]
Joined: 01/03/2011 06:21:38
Messages: 74
Offline
[Profile] [PM]
Lúc trước có làm với DOS thì một số ngắt là của BIOS, như ngắt 10, ngắt 16...
Một số ngắt là do hệ điều hành 21, 0x80... Nhưng bảng vector ngắt này, hệ điều hành có thể sửa đổi bất cứ lúc nào,
[Up] [Print Copy]
  [Question]   Hỏi về chương trình phục vụ ngắt 25/01/2013 22:16:56 (+0700) | #3 | 273041
gamo1102
Member

[Minus]    0    [Plus]
Joined: 10/08/2012 06:01:14
Messages: 32
Offline
[Profile] [PM]

Stanley_00 wrote:
Lúc trước có làm với DOS thì một số ngắt là của BIOS, như ngắt 10, ngắt 16...
Một số ngắt là do hệ điều hành 21, 0x80... Nhưng bảng vector ngắt này, hệ điều hành có thể sửa đổi bất cứ lúc nào, 


Bạn nói rõ hơn về việc hệ điều hành có thể sửa đổi vector ngắt được không. Nếu HĐH mà sửa thì làm sao mình có thể lập trình xử lý ngắt được.
[Up] [Print Copy]
  [Question]   Hỏi về chương trình phục vụ ngắt 25/01/2013 23:33:39 (+0700) | #4 | 273043
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]
khi chương trình chạy ở realmode (ví dụ như trong DOS) thì việc truy xuất bộ nhớ là không bị giới hạn. Do đó không chỉ hệ điều hành mà ngay cả chương trình của user cũng có thể sửa đổi bảng vector ngắt này.
[Up] [Print Copy]
  [Question]   Hỏi về chương trình phục vụ ngắt 26/01/2013 13:49:39 (+0700) | #5 | 273055
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Bạn đọc 2 bài này có thể hiểu rõ hơn:
http://en.wikipedia.org/wiki/Interrupt_descriptor_table
http://wiki.osdev.org/Interrupt_Descriptor_Table


An interrupt vector is the memory address of an interrupt handler, or an index into an array called an interrupt vector table that contains the memory addresses of interrupt handlers. When an interrupt is generated, the Operating System saves its execution state via a context switch, and begins execution of the interrupt handler at the interrupt vector.
 


Bảng 256 vector ngắt được nạp bởi BIOS, nó chứa địa chỉ của trình phục vụ ngắt được cung cấp bởi vi sử lý, mỗi khi một ngắt được gọi sẽ kích hoạt trình phục vụ ngắt tương ứng. Hệ điều hành có thể thay đổi bảng vector ngắt này bằng cách thay đổi địa chỉ trong bảng trỏ đến đoạn chương trình của mình.
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Hỏi về chương trình phục vụ ngắt 26/01/2013 20:20:58 (+0700) | #6 | 273061
gamo1102
Member

[Minus]    0    [Plus]
Joined: 10/08/2012 06:01:14
Messages: 32
Offline
[Profile] [PM]

Bạn cho mình hỏi thêm một câu nhé: Lập trình xử lý ngắt trong một chừng mực nào đó cũng như hook API đúng không?. Bởi vì theo mình hiểu thì đều là dạng bắt các sự kiễn diễn ra và lái chương trình đến 1 hàm do mình viết ra.
Thú thực là mình đọc rất nhiều về ngắt và hook rồi mà vẫn không thể hiểu tường tận, vẫn mù mờ quá.
[Up] [Print Copy]
  [Question]   Hỏi về chương trình phục vụ ngắt 26/01/2013 23:37:09 (+0700) | #7 | 273067
n2tforever
Member

[Minus]    0    [Plus]
Joined: 01/07/2011 15:39:51
Messages: 92
Offline
[Profile] [PM]

gamo1102 wrote:

Bạn cho mình hỏi thêm một câu nhé: Lập trình xử lý ngắt trong một chừng mực nào đó cũng như hook API đúng không?. Bởi vì theo mình hiểu thì đều là dạng bắt các sự kiễn diễn ra và lái chương trình đến 1 hàm do mình viết ra.
Thú thực là mình đọc rất nhiều về ngắt và hook rồi mà vẫn không thể hiểu tường tận, vẫn mù mờ quá. 


theo ý kiến cá nhân, cũng có thể coi chỉnh sửa bảng vector ngắt là một kĩ thuật hook smilie
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|