社区
汇编语言
帖子详情
如何取32位通用寄存器的高16位?
aoudsk
2009-11-15 07:02:41
像EAX,EBX...这些32位通用寄存器的低16可以很方便的存取数据!但高16位却不知怎么样使用!
虽然可以右移16位来取高位或用其它方法,但要消耗好多时间!没有很直接的方法来取32位寄存器的高16位?
...全文
1639
16
打赏
收藏
如何取32位通用寄存器的高16位?
像EAX,EBX...这些32位通用寄存器的低16可以很方便的存取数据!但高16位却不知怎么样使用! 虽然可以右移16位来取高位或用其它方法,但要消耗好多时间!没有很直接的方法来取32位寄存器的高16位?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sax小bin
2009-11-21
打赏
举报
回复
应该还有指令是取来取高位的
hehe3434
2009-11-21
打赏
举报
回复
用逻辑运算屏蔽低十六位?
nanlingcg
2009-11-20
打赏
举报
回复
留个记号。。。。。
desdouble
2009-11-20
打赏
举报
回复
shrl $16, %eax或roll $16, %eax
miaomiao83
2009-11-18
打赏
举报
回复
DING
budao3
2009-11-18
打赏
举报
回复
不好意思,记错了
bswap是把第一字节和第四个字节交换,把第二个字节和第三个字节交换
sorry
日立奔腾浪潮微软松下联想
2009-11-17
打赏
举报
回复
bswap是按字节逆序,不是将eax的高16位和低16位交换。
如果用bswap的话,还要再xchg ah,al。
budao3
2009-11-17
打赏
举报
回复
可以用BSWAP來实现:
bswap EAX;所做的是将eax的高16位和低16位交换;
这条指令之后,AX就是原先的EAX的高16位了
cnzdgs
2009-11-16
打赏
举报
回复
移位操作是很快的,不会消耗很多时间,一般都是用这种做法。
另一种做法是把32位寄存器赋给一个变量,再从变量中取高16位,这种做法效率明显低于移位操作。
日立奔腾浪潮微软松下联想
2009-11-16
打赏
举报
回复
先交换高低16位再用ax:shrd eax,eax,16 ; shld eax,eax,16也行
xiaopoy
2009-11-16
打赏
举报
回复
定义一个内容为 reg32>> 16的宏即可。
gp341
2009-11-16
打赏
举报
回复
dword a
mov a, eax
word ptr a+4 就是高16位吧
desdouble
2009-11-16
打赏
举报
回复
没有直接的方法和指令,间接的方法中移位操作是最快的:
因为通用寄存器是CPU存取数据最快的地方,shrl指令是实现楼主目的最快的指令。cpu只需一个周期,无需等待。
大熊猫侯佩
2009-11-16
打赏
举报
回复
eax>>16
devilidea
2009-11-15
打赏
举报
回复
学习
yuteria
2009-11-15
打赏
举报
回复
可以用AH来使用AX中的高位啊
Intel 64/x86_64/IA-32/x86处理器
通用寄存器
(2) - 64
位
通用寄存器
General-Purpose Registers in 64-mode 在64
位
模式下,有
16
个64
位
宽
通用寄存器
(
32
位
模式是8个
通用寄存器
),默认的操作数宽度是
32
位
(注:与
32
位
模式相同)。但是,
通用寄存器
保存
32
位
或64
位
的操作数。如果指定了
32
位
操作数,则可以使用EAX/EBX/ECX/EDX/EBP/ESP/ESI/EDI和新增的R8D~R15D(注:这里D表示Doubledor...
32
位
汇编——
通用寄存器
主要介绍了
通用寄存器
的概念及其在CPU中的作用,包括其大小与CPU
位
数的关系。视频还解释了为何现代学习仍需涵盖
32
位
CPU及汇编知识,并介绍了
32
位
CPU中的八种
通用寄存器
(eax, ecx, edx, ebx, esp, ebp, esi, edi)。最后,简要提及了move指令作为数据移动的基本操作,强调了汇编语言学习的关键点在于理解寄存器、内存与指令之间的关系。
汇编笔记二【
32
位
通用寄存器
以及 常用汇编指令】 by:凉游浅笔深画眉 / Net7Cracker...
一、
32
位
通用寄存器
(EAX,ECX,EDX,EBP,ESP,EBP,ESI,EDI) 二、十六
位
通用寄存器
(AX,CX,DX,BX,SP,BP,SI,DI) 三、八
位
通用寄存器
(AH,AL,CH,CL,DH,DL,BH,BL) 四、
32
位
,
16
位
,8
位
寄存器之间的关系 1.寄存器都是
高
位
在前,低
位
在后。 2.都是包含关系,
32
位
寄存器之中包含了
16
位
寄...
第十三课_8
位
和
16
位
通用寄存器
前言 很久没写东西了,今晚下班抽空写写。 这部分的内容很简单,但是对刚接触的同学来说可能比较难理解。今天讲8
位
的和
16
位
的
通用寄存器
。 在十一课中,我们知道了
32
位
的
通用寄存器
。分别是EAX、ECX、EDX、EBX、ESP、EBP、ESI、EDI。 今天讲的
16
位
寄存器分别为:AX、CX、DX、BX、SP、BP、SI、DI。 对比
32
位
和
16
位
寄存器的名称,会发现其实
16
位
的寄存器只是少的一个字母E。 今天讲的8
位
的寄存器分别为:AL、CL、DL、BL、AH、CH、DH、BH。
滴水三期:day02.4-
通用寄存器
一、
32
位
通用寄存器
>二、使用OD查看寄存器并且使用MOV指令修改寄存器中值>三、
通用寄存器
>四、汇编指令
汇编语言
21,495
社区成员
41,618
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章