关于任务内无特权变换程序代码的问题,高人指点

wangt 2006-11-16 08:44:58
代码中
LDTSeg SEGMENT PARA USE16 'LDT' ;局部描述符表数据段(16位)
LDT LABEL BYTE ;局部描述符表
;代码段L的描述符
CodeL Desc <CodeLLen-1,CodeLSeg,,ATCE,,>
;代码段C的描述符
CodeC Desc <CodeCLen-1,CodeCSeg,,ATCE,,>
;显示缓冲区段描述符
VideoBuf Desc <0ffffh,0b800h,,ATDW,,>
;LDT别名段描述符(DPL=3)
ToLDT Desc <LDTLen-1,LDTSEG,,ATDR+DPL3,,>
;显示信息缓冲区数据段描述符(DPL=3)
MData Desc <MDataLen-1,MDataSeg,,ATDW+DPL3,,>这里的MDataLen是在后面的代码中出现的
MDataSeg SEGMENT PARA USE16 'MDATA' ;显示信息缓冲区数据段
Message DB 'Value=',0
Buffer DB 80 DUP(0)
MDataLen = $
MDataSeg ENDS
这里的MDataLen-1有什么特殊的意义吗?如果换成0ffffh又有什么不同呢??
...全文
99 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangt 2006-11-16
  • 打赏
  • 举报
回复
mydo你好,mdatalen=$,这条语句所表示的地址是从这一整段代码开始处到这条语句的相对地址,还是从MDataSeg SEGMENT PARA USE16 'MDATA' 到mdatalen这条语句的相对地址呢?
大熊猫侯佩 2006-11-16
  • 打赏
  • 举报
回复
LDTLen-1 是段界限地址部分,如果一个段界限长度是从0开始到4kb,则它最高地址
只能是 4kb - 1 ,我不只一次的说过这时一个 个数和表示的 不同:从0到9有10个数,
但最高只到 10 -1 = 9 。

可以换成 0ffffh ,这要看你自己代码的功能和你的目的了。

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧