. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->外中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  15.5 安装新的int9中断程序中,有一句话 “当此中断例程执行时(CS)=0",这句话怎么理解?  [待解决] 回复[ 4次 ]   点击[ 409次 ]  
miaoasm
[帖 主]   [ 发表时间:2011-07-24 14:35 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-06-13 15:40
在自定义的新的终端中,有一句话,

pushf
call dword ptr cs:[200H]    ; 当此中断例程执行时(CS)=0

我不太理解 CS=0的 原因是什么。

是因为这个中断安装在 0:204H 处,所以 CS就是 0么?
还是有什么其他原因呢?

我把这里 改成 
mov ax,0
mov es,ax

pushf
call dword ptr es:[200H],这样却得不到正确的结果,不知道为什么?
miaoasm
[第1楼]   [ 回复时间:2011-07-24 14:38 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-06-13 15:40
不好意思,我明白了!

第二种做法是正确的!
只是 它改变了 AX的数值,而 AL在 IN AL,60H中还要起作用,所以不正确

OK了,彻底明白了~呵呵
juende66
[第2楼]   [ 回复时间:2011-12-06 15:22 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-11-11 23:27
是cpu 中断过程 原因  

   因为 cpu在响应中断的时候 会有一个保护现场的工作 这个工作叫做 中断过程,中断过程的最后一步就是如果中断向量 修改CS:IP 指向中断处理程序 ,而你所指的这个程序被安装在0000:204处 
         所以call dword ptr cs:[200h] 中的 cs 是0
juende66
[第3楼]   [ 回复时间:2011-12-06 15:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-11-11 23:27
纠正下  

是cpu 中断过程 原因   

   因为 cpu在响应中断的时候 会有一个保护现场的工作 这个工作叫做 中断过程,中断过程的最后一步就是通过中断向量 修改CS:IP 指向中断处理程序 ,而你所指的这个程序被安装在0000:204处  
         所以call dword ptr cs:[200h] 中的 cs 是0
jeremy
[第4楼]   [ 回复时间:2012-08-10 18:58 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2012-03-09 19:30
我也是这个问题
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved