jmpi(Jump Intersegment)段间跳转
16位实模式下
如jmpi 0,90000 !则表示程序跳到90000:0去继续执行,使得CS=90000,IP=0
如jmpi go,INITSEG !INITSEG指出跳转到的段地址,假设INITSEG=0x90000,标号go是段内偏移地址
go: mov ax,cs !将ds、es、ss都置成移动后代码所在的段处(
0x90000 )
mov ds,ax
mov es,ax
mov ss,ax
mos sp,#0x9FF00 !将堆栈指针sp指向0x9FF00(即 0x9FF00:0x90000 )处
32位保护模式下
mov ax,#0x0001 !置保护模式比特位(PE)
lmsw ax !加载机器状态字Load Machine Status Word,也称控制寄存器CR0
jmpi 0,8 !跳转至cs段偏移0处,此处‘8’是段选择符,用来指定gdt中的段描述符项,‘0’是
!描述符项指定的代码中的偏移值,8(0b0000 0000 0000 1000)表示请求特权级0,使用
!全局描述符表GDT中第2个段描述符项,在此段描述符中得到base address基地址
阅读(3136) | 评论(0) | 转发(0) |