mov sreg, r/m16 在16位和32位编程中的区别

news/2024/11/24 11:10:25/

  总结于《X86汇编语言 从实模式到保护模式》

  仅适用于X86系列处理器

1. 两者的区别:

  例:mov ds, ax
  A.在指定16位编译模式下,产生的二进制码是 8E D8
  B.在指定32位编译模式下(在某些老式的编译器中才会出现的),产生的二进制码是 66 8E D8

2. 影响:
  A.加上0x66的前缀是为了反转默认的操作数大小。因为32位模式下,默认的操作数大小是4字节的,而指令中的源操作数是16位的AX。
  B.有前缀和没前缀相比,CPU在执行时会多花一个额外的时钟周期。

3. 解决
  A. 使用32位的源操作数,但是高地址部分会被截断。也让人难以理解。如:
    mov ds, eax
    编译出来的二进制指令是:8E D8
  B. 使用NASM编译器,NASM编译器无论在什么样的处理器模式下,编译出来的指令都是一样的。

[BITS 16]
MOV DS, AX    ;8E D8
MOV DS, EAX ;8E D8
[BITS 32]
MOV DS, AX    ;8E D8
MOV DS, EAX    ;8E D8

 

转载于:https://www.cnblogs.com/Jer-/p/3176551.html


http://www.ppmy.cn/news/849317.html

相关文章

从quatus内部启动modelsim进行后仿真 出现Instantiation of 'mt48lc32m16a2' failed. The design unit was not found.

问题:当我进行前仿真的时候,quatus编译成功,modelsim流畅运行,非常顺利,功能验证正确!但是当我进行后仿真的时候却一直出现Instantiation of mt48lc32m16a2 failed. The design unit was not found.。我百思…

Micron MT48LC16M16A2P-6A:G 动态随机存取存储器

MT48LC16M16A2P-6A:G是一种高速CMOS动态随机存取存储器,包含268435456位。它内部配置为具有同步接口的四组DRAM(所有信号都记录在时钟信号CLK的正边缘)。 MT48LC16M16A2P-6A:G设计用于3.3V内存系统。提供了自动刷新模式以及省电、断电模式。…

ICMAX IMD512M16R31AG8GPF 嵌入式存储

功能特征 1、VDDVDDQ1.5V0.075V 2、1.5V中心端接推/拉I/O (1)支持DDR3L设备在1.5V应用中向后兼容 3、差分双向数据选通 4、8n位预取体系结构 5、差分时钟输入(CK,CK#) 6、8个内部银行 7、数据、选通和屏蔽信号…

不停产工业级SDRAM-AS4C16M16S-6TIN/AS4C16M16SA-6TIN 美国ALLIANCE代理商

Alliance亚太区代理商 大盛唐电子集团有限公司 代理ALLIANCE全线产品:SRAM,SDRAM,DDR1,DDR2,DDR3,Mobile DDR等 TEL:021-60492915 手机:15818636023 李敬 QQ:1975014611 邮箱:billszdst.com.cn 型号太多,无法一…

MT47H64M16NF-25EM相关参数介绍

MT47H64M16NF-25EM相关参数介绍 特征Vop 1.8V0.1V,VDDO 1.8V0.1VJEDEC标准1.8V1 / O(SSTL_18兼容)差分数据选通(DQS,DQS#)选项4n位预取架构x8的重复输出选通(RDQS)选…

分析M16C62在uC/OS-II嵌入式系统中的应用

随着微电子技术和网络的发展,人们对网络的认识日益深入。网络终端产品也越来越受到人们的关注,嵌入式操作系统的应用也得到了前所未有的发展,人们对嵌入式的研究也有了长足的进步。基于某个操作系统的实时、多任务系统的设计合应用成为单片机…

后端long类型数据在前端产生精度损失

后端我们常常会用Long类型的数据作为ID,例如用雪花算法生成唯一ID java中long类型的取值范围 (-9,223,372,036,854,775,808)(9,223,372,036,854,775,807)。有19位数字 JavaScript的Number类型是浮点数类型,…

M16C

R8C/M16C提供一系列预处理指令,能够很好的优化C代码。 本文以nc30编译器为例,谈谈#pragma的用法。 1)。与内存有关的命令 #pragma ROM 将一个变量放入ROM里面,比如: #pragma ROM aa int aa; #pragma BIT 位变量申明。表…