NASM怎么实现段间跳转指令?jmp dword selector:offset,编译通不过。
时间:2011-12-11
来源:互联网
我想通过jmp TSS的选择子来实现保护模式下的任务切换,这个jmp selector:0指令该怎么写呢?用NASM,且selector保存在变量中。
每个任务定义了一个tss结构和选择子tss_sel变量,p_proc_ready指向下一个将要运行的任务。
start_proc:
mov esp, [p_proc_ready] ;---取得将要运行的任务的进程表地址
mov ebp, [esp + P_TSS_SEL];---取得将要运行的任务的TSS地址
xor eax, eax
mov ax, [ebp];---取得将要运行的任务的TSS段选择子
jmp ax;---通过跳转至任务状态段实现任务切换:jmp ax:0,但这样的话编译通不过
;----error: invalid combination of opcode and operands
;-----同时还试过jmp dword [p_proc_ready + P_TSS_SEL]:0
;-----jmp dword [ebp + P_TSS_SEL]:0都无法通过编译
;-----这个指令该怎么写呢?我试了一下直接用jmp dword 0x7c00:0是可以的。
;jmp dword 0x100:0
dec dword [k_reenter]
pop gs
pop fs
pop es
pop ds
popad
add esp, 4
iretd
每个任务定义了一个tss结构和选择子tss_sel变量,p_proc_ready指向下一个将要运行的任务。
start_proc:
mov esp, [p_proc_ready] ;---取得将要运行的任务的进程表地址
mov ebp, [esp + P_TSS_SEL];---取得将要运行的任务的TSS地址
xor eax, eax
mov ax, [ebp];---取得将要运行的任务的TSS段选择子
jmp ax;---通过跳转至任务状态段实现任务切换:jmp ax:0,但这样的话编译通不过
;----error: invalid combination of opcode and operands
;-----同时还试过jmp dword [p_proc_ready + P_TSS_SEL]:0
;-----jmp dword [ebp + P_TSS_SEL]:0都无法通过编译
;-----这个指令该怎么写呢?我试了一下直接用jmp dword 0x7c00:0是可以的。
;jmp dword 0x100:0
dec dword [k_reenter]
pop gs
pop fs
pop es
pop ds
popad
add esp, 4
iretd
作者: liaozhicai 发布时间: 2011-12-11
没人理我?有人知道吗?
作者: liaozhicai 发布时间: 2011-12-12
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28