问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

给出一个NASM修改中断向量表的例子!大家都进!

发布网友 发布时间:2022-05-23 19:33

我来回答

1个回答

热心网友 时间:2023-11-17 15:17

%include "nasm386SCD.INC "
org 7c00h
EOICOM equ 20h ;外部中断处理结束命令
ICREGP equ 20h ;中断控制寄存器端口地址
IMREGP equ 21h ;中断屏蔽寄存器端口地址

Start:
; mov ax,7c0h
; mov ds,ax
cld
cls
call InitGDT ;初始化全局描述符表GDT
call InitIDT ;初始化中断描述符表IDT
mov [SSVar],ss ;保存堆栈指针
mov [SPVar],sp
sidt [NORVIDTR] ;保存IDTR
in al,IMREGP
mov BYTE [IMaskRegV],al
lgdt [VGDTR] ;装载GDTR
cli ;关中断
lidt [VIDTR] ;装载IDTR
mov eax,cr0
or al,1
mov cr0,eax
;mov ax,16 ;置中断处理程序数据段
;mov ds,ax
;mov word [ds:10],4e61h

JUMP16 TempCode_Sel,0

;----------------------------------------------------------------------------
InitGDT: ;PROC

mov ax,GDTSeg
mov WORD [VGDTR+2],ax
ret
;InitGDT ENDP
;----------------------------------------------------------------------------
InitIDT: ;PROC

mov ax,IDTSeg
mov WORD [VIDTR+2],ax
ret
;InitIDT ENDP
;----------------------------------------------------------------------------
;RCodeSeg ENDS
; END Start

RDataSeg: ;SEGMENT PARA USE16 ;实方式数据段
VGDTR: ;PDesc <GDTLen-1,> ;GDT伪描述符
dw GDTLen-1,0,0
VIDTR: ;PDesc <IDTLen-1,> ;IDT伪描述符
dw GDTLen-1,0,0
NORVIDTR: ;PDesc <3ffh,> ;用于保存原IDTR值
dw 3ffh,0
SPVar DW 0 ;用于保存实方式下的SP
SSVar DW 0 ;用于保存实方式下的SS
flag DB 0 ;提示信息
Count db 8
IMaskRegV db 0
;RDataSeg ENDS

GDTSeg: ;SEGMENT PARA USE16 ;全局描述符表数据段(16位)
;----------------------------------------------------------------------------
;全局描述符表GDT
GDT: ;LABEL BYTE

DUMMY: ;空描述符
dw 0,0,0,0 ;Desc <>

Normal: ;规范段描述符及选择子
dw 0fffh,0 ;Desc <0ffffh,,,ATDW,,>
db 0,ATDW,0,0
Normal_Sel equ Normal-GDT

;视频缓冲区段描述符(DPL=3)及选择子
VideoBuf: Desc 0ffffh,8000h,0bh,ATDW,0,0
VideoBuf_Sel equ VideoBuf-GDT
;----------------------------------------------------------------------------
EFFGDT: ;LABEL BYTE

;临时代码段描述符及选择子
TempCode: Desc 0ffffh,TempCodeSeg,0,ATCE,0,0
TempCode_Sel equ TempCode-GDT

;演示代码段描述符及选择子
TICode Desc 0ffffh,int8,0,ATCE,0,0
;8号中断处理程序数据段描述符
TIData Desc 200h,0,0,ATDW,0,0

GDTLen equ $-GDT ;全局描述符表长度
GDNum equ ($-EFFGDT)/8 ;需特殊处理的描述符数
;EchoCode_Sel = EchoCode-GDT ;0feh号中断程序代码段选择子
;EchoData_Sel = EchoData-GDT ;0feh号中断程序数据段选择子
TICode_Sel equ TICode-GDT ;8号中断程序代码段选择子
TIData_Sel equ TIData-GDT ;8号中断程序数据段选择子

IDTSeg: ;SEGMENT PARA USE16 ;中断描述符表数据段(16位)
;----------------------------------------------------------------------------
IDT: ;LABEL BYTE ;中断描述符表
;0--7的8个陷阱门描述符
Gate 0,0,0,AT386TGate,0
Gate 0,0,0,AT386TGate,0
Gate 0,0,0,AT386TGate,0
Gate 0,0,0,AT386TGate,0
Gate 0,0,0,AT386TGate,0
Gate 0,0,0,AT386TGate,0
Gate 0,0,0,AT386TGate,0
Gate 0,0,0,AT386TGate,0
;ENDM
;对应8号(时钟)中断处理程序的门描述符
Gate 0,TICode_Sel,0,AT386IGate,0

;----------------------------------------------------------------------------
IDTLen equ $-IDT
;----------------------------------------------------------------------------
;IDTSeg ENDS ;中断描述符表段定义结束

;----------------------------------------------------------------------------
;8号中断处理程序的代码段
;----------------------------------------------------------------------------
;TempCodeSeg: ;SEGMENT PARA USE16
;ASSUME CS:TICodeSeg,DS:TIDataSeg
;----------------------------------------------------------------------------
int8: push eax
push ds
push fs
push gs
mov ax,16 ;置中断处理程序数据段
mov ds,ax
mov word [ds:10],4e61h
pop gs
pop fs
pop ds

mov al,EOICOM ;通知中断控制器中断处理结束
out ICREGP,al
pop eax
iretd ;中断返回
;TIBegin ENDP
;----------------------------------------------------------------------------
;TICodeLen = $
;TICodeSeg ENDS

TempCodeSeg:

mov ax,16
mov ds,ax
mov al,11111110b
out 21h,al
sti
jmp $
times 510-($-$$) db 0
dw 0xaa55
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何写一份详细的产假请假条? 产假申请书怎么写,产假最新规定 2024年产假申请表应该怎么写 人教版初一七年级生物上册期末考试复习提纲-初中生物知识点总结-初一七... ...了,过会儿再插上,饭会不会不好吃,该怎么弄? 三国无双4赤壁之战这关怎么过?? 真三国无双4赤壁之战祭坛附近的4对箱子在哪 真三国无双4祭风 真三国无双4夏候渊的武器怎么拿 ...大,症状是呕吐。治疗过程如下,请懂狗的人多给出出主意! 20急啊 渗透剂和软化剂的中毒问题,我在个公司上班是生产管段的 关键词的状态为暂停、搜索无效、搜索量过低是否对质量度产生影响? 青岛的天幕城贵不贵?一般人均消费多少钱? 搜索引擎的关键词都有哪些状态 能告诉我玻璃纤维的软化剂配方吗? 关于感恩节的作文 包括十个对象 盘锦天幕营业吗? 百度推广里面的,关键词状态显示计算机搜索无效。 怎么解决 急急 请问我10月20几号在成都市金牛区曹家巷嘉寓天幕酒店公寓楼同恒大公司签的买房合同都没批下来这是为什? 成都市金牛区恒大嘉寓天幕酒店一没有施工为什么?_致 SQL多变量语句写法 关键词有哪几种状态,分别表示什么 小贱歌曲,我做不到不想你mv中女主角的名字! 重庆天慕酒店到动车站是重庆北还是重庆西方便? 我想要知道 废电路板和电子元件中 金属种类和大概含量 悬赏100 星弟小贱唱的专属电影mv是哪部电视剧 壳斗目的金缕梅亚纲 sap系统ticode在user哪个下面 钛码产品都有哪些? 重庆中科芯亿达电子有限公司怎么样? 辣条防腐剂,软化剂,该怎么选择,要安全有效 百度推广后台一个关键词的状态为什么显示无效? APG III分类系统的豆类 fabids 007大破天幕危机 主人公在上海住的酒店有个顶层泳池,这个酒店是哪个? APGII分类法的I类真蔷薇分支 eurosids I 青岛商务酒店--青岛金莎商务酒店 《天幕下的恋人》分集介绍 大饼柔软剂配方 我想知道天幕下的莲人分集剧情介绍 语文老师要我们写一篇关于感恩节的作文,题材!! 天幕下的恋人里李克勤唱的什么歌 本人明天想去青岛 在哪住宾馆比较方便划算 想去 天幕城金沙滩 小青岛 栈桥 第一海水浴场 帝源温泉新城天慕湾怎么样?好不好?值不值得买? 和g12差不多的手机有哪些啊????还有g12和g11哪个性价比更高啊????? 宿舍一女生故意买了一双和我同款小白鞋,还故意挑衅我,装不小心踩我鞋子,背后说我故意和她买一样的 求三星手机“i”系列手机主打功能与“G”系列手机主打功能 能与HTC G7比的手机有哪些 手机上的E和G是什么,? 请问智能手机与G3手机有什么区别,哪个更好? 什么叫出血热?