请教几条未公开的指令...

NOV 2003-07-26 08:51:06
COMV
FCOMV
FCOMI
RDPMC
INT01
SALC
能说一下它们的作用和用法吗?
...全文
207 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
W32API 2003-09-10
  • 打赏
  • 举报
回复
对于本贴的声明:

关于 COMV 指令:
该指令的定义应为 CMOVcc—Conditional Move (Continued)。
实际应用中会是以下方式:CMOVNO、CMOVO、CMOVNP、CMOVP、CMOVO、CMOVZ 等。
根据使用过程中的需求来选用指令。CMOV 不是具体指令,应表示一类指令。
The CMOVcc instructions were introduced in the P6 family processors; however, these instructions

may not be supported by all IA-32 processors.

Operation:
temp ← DEST
IF condition TRUE
THEN
DEST ← SRC
ELSE
DEST ← temp
FI;

Flags Affected:None.

关于 FCMOV 指令:
FCMOVcc—Floating-Point Conditional Move (Continued)
实际应用中会是以下方式:FCMOVB、FCMOVE、FCMOVBE、FCMOVU、FCMOVNB、FCMOVNE 等。
其它同上。

Operation:
IF condition TRUE
ST(0) ← ST(i)
FI;

FPU Flags Affected:
C1 Set to 0 if stack underflow occurred.
C0, C2, C3 Undefined.

关于 INT01 指令:该指令为自陷式中断功能调用,CPU 也可在 TF=1 的情况下自动产生该动作。
INTEL 只有 INT n/INTO/INT 3—Call to Interrupt Procedure.
Opcode Instruction Description
CC INT 3 Interrupt 3—trap to debugger
CD ib INT imm8 Interrupt vector number specified by immediate byte
CE INTO Interrupt 4—if overflow flag is 1

其它指令
FCOMI/FCOMIP/ FUCOMI/FUCOMIP—Compare Floating Point Values and Set EFLAGS.
RDPMC—Read Performance-Monitoring Counters.

SALC:INTEL 并未提供该指令
INTEL 的 SAL 指令的详细情形:
Opcode Instruction Description
D0 /4 SAL r/m8,1 Multiply r/m8 by 2, once
D2 /4 SAL r/m8,CL Multiply r/m8 by 2, CL times
C0 /4 ib SAL r/m8,imm8 Multiply r/m8 by 2, imm8 times
D1 /4 SAL r/m16,1 Multiply r/m16 by 2, once
D3 /4 SAL r/m16,CL Multiply r/m16 by 2, CL times
C1 /4 ib SAL r/m16,imm8 Multiply r/m16 by 2, imm8 times
D1 /4 SAL r/m32,1 Multiply r/m32 by 2, once
D3 /4 SAL r/m32,CL Multiply r/m32 by 2, CL times
C1 /4 ib SAL r/m32,imm8 Multiply r/m32 by 2, imm8 times

jzma(马凡)的回答基本属实,对于 SALC 指令的解释 INTEL 并未提供,如为编译器提供的伪指令确实可以这么解

NOV 2003-07-29
  • 打赏
  • 举报
回复
谢大家啦~
Areslee 2003-07-28
  • 打赏
  • 举报
回复
www.x86.org
jzma 2003-07-28
  • 打赏
  • 举报
回复
单步中断(INT 1)是由机器内部状态引起的一种中断,当系统标志寄存器的TF标志(单步跟踪标志)被置位时,就会自动产生一次单步中断,使得CPU能在执行一条指令后停下来,并显示各寄存器的内容 。
jzma 2003-07-28
  • 打赏
  • 举报
回复
CMOV 整形指令 相等则条件传送
FCMOV 浮点指令 相等则浮点条件传送
FCOMI 浮点指令 比较指 令实数比较并设置EFLAGS
RDPMC 系统指令 读性能监视计数器
INT01
SALC 就是CF位置1的话就将al置为0xff

jc _lbl1 ;2 bytes
mov al, 0 ;2 bytes
jmp _end ;2 bytes
_lbl: mov al, 0ffh ;2 bytes
_end: ...

little_sheep 2003-07-28
  • 打赏
  • 举报
回复
SALC:指令码0d6h。作用:当CF为1时使AL=0ffh.
NOV 2003-07-28
  • 打赏
  • 举报
回复
不会吧?可是我找不到哦~~~
可以说说SALC指令吗我还是不太清楚它的用法。
AI1982 2003-07-27
  • 打赏
  • 举报
回复
fcomv fcomi 好象是80X87处理器的指令
所有浮点指令都是以f-开头的
从字面上看他们应该是用于比较的
ahalf 2003-07-27
  • 打赏
  • 举报
回复
COMV,FCOMI
确实没听说过,我只听说过:
cmov,fcmov,
其余的文档都有,谁说未公开?
NOV 2003-07-26
  • 打赏
  • 举报
回复
自己UP

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧