保护模式下,段间调用一定要用调用门吗?
时间:2011-04-17
来源:互联网
我没有用调用门,程序只是在保护模式下去调用另一个代码段,可是电脑老是重启,
请看:
;先定义16位偏移的段间调用宏定义
call16 macro selector,offsetv
db 9ah ;操作码
dw offsetv ;16位偏移
dw selector ;段值或选择子
endm
;然后在GDT定义一个代码段
dseg segment use16 ;16位段
gdt label byte ;全局描述符表gdt
dummy descriptor <> ;空描述符
....
codes descriptor <0ffffh,,,92h,>
codes_sel =codes-gdt ;sub-program
....
dseg ends
;子程序代码段
cseg1 segment use16
assume cs:cseg1
dspmsg:
;我这里什么都没有写,只有一个返回指令
ret
cseg1 ends
;然后在主程序中设置该子程序代码段描述符
mov bx,16
mov ax,cseg1
mul bx
mov codes.basel,ax ;代码段开始偏移为0
mov codes.basem,dl ;代码段界限已在定义时设置妥当
mov codes.baseh,dh
;然后在保护模式中
call16 codes_sel,dspmsg
可是机器老是重启,请问错在哪?
请看:
;先定义16位偏移的段间调用宏定义
call16 macro selector,offsetv
db 9ah ;操作码
dw offsetv ;16位偏移
dw selector ;段值或选择子
endm
;然后在GDT定义一个代码段
dseg segment use16 ;16位段
gdt label byte ;全局描述符表gdt
dummy descriptor <> ;空描述符
....
codes descriptor <0ffffh,,,92h,>
codes_sel =codes-gdt ;sub-program
....
dseg ends
;子程序代码段
cseg1 segment use16
assume cs:cseg1
dspmsg:
;我这里什么都没有写,只有一个返回指令
ret
cseg1 ends
;然后在主程序中设置该子程序代码段描述符
mov bx,16
mov ax,cseg1
mul bx
mov codes.basel,ax ;代码段开始偏移为0
mov codes.basem,dl ;代码段界限已在定义时设置妥当
mov codes.baseh,dh
;然后在保护模式中
call16 codes_sel,dspmsg
可是机器老是重启,请问错在哪?
作者: leetow2003 发布时间: 2011-04-17
32位模式下9a用32位偏移
call16 macro selector,offsetv
db 9ah ;操作码
dd offsetv ;32位偏移
dw selector ;段值或选择子
endm
call16 macro selector,offsetv
db 9ah ;操作码
dd offsetv ;32位偏移
dw selector ;段值或选择子
endm
作者: Lactoferrin 发布时间: 2011-04-17
那16位用什么操作码?
作者: leetow2003 发布时间: 2011-04-17
那16位用什么操作码?
9a
9a
作者: Lactoferrin 发布时间: 2011-04-17
是呀,我就是用9aH的,可是不行。
请问:我这种方法不用调用门可以吗?
请问:我这种方法不用调用门可以吗?
作者: leetow2003 发布时间: 2011-04-17
32位模式下,9a默认用32位偏移,如果要用16位偏移,在9a前面加一个66h操作数覆盖前缀
如果目标代码段的特权级和当前代码段的特权级相同,就不需要调用门
如果目标代码段的特权级和当前代码段的特权级相同,就不需要调用门
作者: Lactoferrin 发布时间: 2011-04-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28