鱼C论坛

 找回密码
 立即注册
查看: 2919|回复: 2

关于清空流水线、串行化处理器时jmp操作加不加关键字“dword”的请教

[复制链接]
发表于 2017-12-2 14:20:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 兰陵月 于 2017-12-2 14:27 编辑

本求助源自于《X86汇编语言-从实模式到保护模式》(李忠等著,第1版)第11章 进入保护模式 第11.7节 清空流水线并串行化处理器(P199)
代码清单位于:http://bbs.fishc.com/thread-100569-1-1.html
这里主要讨论代码第55行:jmp  0x0010:flush   ;16位的描述符选择子:32位偏移


先看上下文内容—《X86汇编语言-从实模式到保护模式》P199


001.png

002.png

——————————————分——割——线———————————————

003.png

进行有dword和没dword的编译、执行测试

一、不加关键字“dword”,jmp 0x0010:flush的编译结果,如下图:

004.png

可以看到标号flush编译后的地址为:0x0000009C。

jmp指令编译后的机器码为:EA [9C 00] 10 00,总共5个字节。

二、加关键字“dword”,jmp dword 0x0010:flush的编译结果,如下图:

005.png

可以看到标号flush编译后的地址为:0x0000009F。

jmp指令编译后的机器码为:66 EA [9F 00 00 00] 10 00,总共8个字节。


上述两条指令加与不加关键字dword,在虚拟机中最后运行结果都一样,都能正常显示结果。

至于一模一样的程序在我的机器上编译之后的地址结果为何与书上不一致?!

我也弄不清楚,但程序编译后都能正常执行,并显示与书本上一致的结果。


这是否说明,这个关键字dword可加可不加,效果是否都是一样的呢?




本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-2 14:55:42 | 显示全部楼层
虽然不太懂这部分的内容,但加dword和不加dword的差别楼主不是已经分析的很明白了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-2 17:06:44 | 显示全部楼层
newu 发表于 2017-12-2 14:55
虽然不太懂这部分的内容,但加dword和不加dword的差别楼主不是已经分析的很明白了吗

想把计算机搞个底朝天
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-16 21:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表