首页
社区
课程
招聘
请教::CDQ是什么指令
发表于: 2004-12-20 18:08 9081

请教::CDQ是什么指令

2004-12-20 18:08
9081
::004E4737::  50                       PUSH EAX
::004E4738::  8B45 F8                  MOV EAX,[EBP-8]
::004E473B::  E8 6802F2FF              CALL 004049A8
::004E4740::  5A                       POP EDX
::004E4741::  92                       XCHG EAX,EDX
::004E4742::  8BCA                     MOV ECX,EDX
::004E4744::  99                       CDQ
::004E4745::  F7F9                     IDIV ECX
::004E4747::  8BF8                     MOV EDI,EAX

其中上面的CDQ是什么指令?
看又不像是花指令

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
是汇编的命令,好像把edx扩展,具体我忘了!
2004-12-20 19:04
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
3
CDQ 把原来的 EAX 扩展成 EDX:EAX (带正负值),
        这个指令把 EAX 的第 31 bit 复制到 EDX 的每一个 bit 上。例如 :

        假设 EAX 是 FFFFFFFB (-5) ,它的第 31 bit (最左边) 是 1,
        执行 CDQ 后, CDQ 把第 31 bit 复制至 EDX 所有 bit

        EDX 变成 FFFFFFFF

        这时候, EDX:EAX 变成  FFFFFFFF FFFFFFFB ,它是一个 64 bit 的大型数字,数值依旧是 -5
2004-12-20 19:12
0
雪    币: 225
活跃值: (146)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
谢谢大侠指点!
2004-12-21 11:37
0
雪    币: 318
活跃值: (418)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
riijj CDQ 把原来的 EAX 扩展成 EDX:EAX (带正负值),         这个指令 ...
学习了
2017-5-31 11:29
0
雪    币: 49
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
大神,7篇精华哇。
2017-5-31 11:49
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
感谢老师傅指点
2017-5-31 12:06
0
游客
登录 | 注册 方可回帖
返回