在TSS的标准定义应该是104个字节(26*4字节)而在80x86hi变语言程序设计教程中有关于TSS的类型定义,
却是105个字节最后一个DB 0FFh为什么会多出这么一个字节?
- Assembly code
TASKSS STRUC ;其他省略,这里其他的都明白了 DW $ + 2 ;这句I/O许可位图区的指针 DB 0FFh ;这句的意思TASKSS ENDS
------解决方案--------------------------------------------------------
可能是再加上后面(DB 0FFh )那字节变成105个字节。
------解决方案--------------------------------------------------------
地址 $: DW $ + 2 ;这句I/O许可位图区的指针 下面那个就是$+2
$+2 : DB 0FFh ;这句的意思
------解决方案--------------------------------------------------------
书上好像有写 结束位
------解决方案--------------------------------------------------------
是104个字节无疑。
偏移102处是I/O位图的位移。如果小于等于104则说明没有I/O位图
------解决方案--------------------------------------------------------
这句:
- Assembly code
DW $ + 2 ;这句I/O许可位图区的指针
------解决方案--------------------------------------------------------
大哥呀。。。你TSS描述符里不是有段界限么!TSS描述符的段界限(长度)减去104,不就。。。